2017-09-21 36 views
2

我試圖爲ARMv7A MCU(Cortex-A8)啓用中斷,並且我注意到無論我嘗試什麼,都無法在用戶模式下更改CPSR寄存器中的I位。我讀了一下,似乎是因爲我處於USR模式。在用戶模式下爲ARMV7A處理器啓用中斷

是唯一的解決方案調用SWI並更改SWI處理程序中的SPSR

+4

您需要處於特權模式才能更改處理器的I位。 – Gaurav

回答

1

實際上,您不能在用戶模式下禁用或啓用中斷。您只能以特權模式進行操作。

禁用中斷切換到用戶模式是很常見的。通常情況下,只有在禁止中斷的情況下才會運行非常少量的代碼,因爲這會延遲處理下一個中斷。如果您在用戶模式下運行中斷處理程序的一部分,請在重新啓用中斷之前先執行任何必須完成的操作,然後切換到用戶模式。