2017-09-21 37 views
2

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

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

+4

您需要处于特权模式才能更改处理器的I位。 – Gaurav

回答

1

实际上,您不能在用户模式下禁用或启用中断。您只能以特权模式进行操作。

禁用中断切换到用户模式是很常见的。通常情况下,只有在禁止中断的情况下才会运行非常少量的代码,因为这会延迟处理下一个中断。如果您在用户模式下运行中断处理程序的一部分,请在重新启用中断之前先执行任何必须完成的操作,然后切换到用户模式。