[英]MCR and MRC does not exist on AARCH64?
我正在嘗試基於 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'
我嘗試查看內核源代碼 /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));
arch/arm64/include/asm/arch_timer.h 中的對應項有:
case ARCH_TIMER_REG_CTRL:
asm volatile("msr cntv_ctl_el0, %0" : : "r" (val));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.