繁体   English   中英

MSR CPSR_C, #0x13 不能使用 ARM 程序集?

[英]MSR CPSR_C, #0x13 doesn't work using ARM assembly?

我正在为 ARM Cortex A9 处理器编写裸机代码(无操作系统)。

我需要读取一个只能在主管模式下访问的寄存器(多处理器关联寄存器,MPIDR)。

当我处于用户模式并尝试使用调试器逐步执行以下指令(进入主管模式)时,没有任何反应。

MSR CPSR_C, #0x13

如果我尝试读取 MPIDR 寄存器,我的程序将进入未定义模式

请问你知道我错过了什么吗?

当我使用调试器窗口并将 CPSR 寄存器的前五个位强制设置为 b10011 时,它起作用了,我去找主管。

您不能使用直接写入用户模式下的 CPSR 模式位的指令在模式之间进行更改。 正确的方法是使用svc (主管调用)并执行所需的必要指令。

使用 cps 指令,例如

# Disable ABT, IRQ, FIQ and set SVC mode
cpsid aif, #0x13

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM