Ami*_*mar 5 assembly linux-kernel arm64
我正在尝试基于 Board 在 AARCH64 上编译“mrc”和“mcr”指令,但我看到以下错误消息
tmp/ccqOHmrK.s: Assembler messages:
/tmp/ccqOHmrK.s:43: Error: unknown mnemonic `mrc' -- `mrc p15,0,x0,c14,c3,1'
/tmp/ccqOHmrK.s:53: Error: unknown mnemonic `mrc' -- `mrc p15,0,x2,c14,c3,0'
Run Code Online (Sandbox Code Playgroud)
我尝试查看内核源代码 /arch/arm64,但没有模拟就没有使用过 mcr&&mrc。
这是一些语法问题吗?
您应该用适当的msr说明替换它们。例如,arch/arm/include/asm/arch_timer.h有:
case ARCH_TIMER_REG_CTRL:
asm volatile("mcr p15, 0, %0, c14, c3, 1" : : "r" (val));
Run Code Online (Sandbox Code Playgroud)
在对方弓/ arm64 /包括/ ASM / arch_timer.h有:
case ARCH_TIMER_REG_CTRL:
asm volatile("msr cntv_ctl_el0, %0" : : "r" (val));
Run Code Online (Sandbox Code Playgroud)