在ARMV7A处理器的用户模式下启用中断

时间:2017-09-21 08:41:10

标签: c gcc arm armv7

我试图为ARMv7A MCU(Cortex-A8)启用中断,我注意到无论我尝试什么,我都无法在用户模式下更改CPSR寄存器中的I位。我读了一下,看起来这是因为我处于USR模式。

是调用SWI并更改SWI处理程序中SPSR的唯一解决方案吗?

1 个答案:

答案 0 :(得分:1)

实际上,您无法在用户模式下禁用或启用中断。您只能在特权模式下执行此操作。

在禁用中断的情况下切换到用户模式是不常见的。通常,只运行极少量禁用中断的代码,因为这会延迟下一个中断的处理。如果在用户模式下运行部分中断处理程序,首先要在重新启用中断之前执行必须执行的操作,然后切换到用户模式。