![](/img/trans.png)
[英]Instruction for changing the ARM mode is not working “msr cpsr_c XX”
[英]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.