CPSR中的F和I位,分別對應的是FIRQ和IRQ,如果被置爲1,CPU不會接受對應的請求,可以通過設置對應的位爲0,並設置MASK,分別允許對應的請求.
INT_MODE,分別爲IRQ和FIRQ模式,是對應中斷的觸發方式,0=IRQ,1=FIRQ.
中斷優先級
每個仲裁器可以處理基於 1 位仲裁器模式控制(ARB_MODE)和選擇控制信號(ARB_SEL)的 2 位的 6 箇中
斷請求,如下:
– 如果 ARB_SEL 位爲 00b,優先級順序爲 REQ0、REQ1、REQ2、REQ3、REQ4 和 REQ5。
– 如果 ARB_SEL 位爲 01b,優先級順序爲 REQ0、REQ2、REQ3、REQ4、REQ1 和 REQ5。
– 如果 ARB_SEL 位爲 10b,優先級順序爲 REQ0、REQ3、REQ4、REQ1、REQ2 和 REQ5。
– 如果 ARB_SEL 位爲 11b,優先級順序爲 REQ0、REQ4、REQ1、REQ2、REQ3 和 REQ5。
請注意仲裁器的 REQ0 的優先級總是最高並且 REQ5 的優先級總是最低。此外,通過改變 ARB_SEL 位,可
以輪換 REQ1 到 REQ4 的順序。
此處,如果 ARB_MODE 位被設置爲 0,ARB_SEL 位不能自動改變,這使得仲裁器操作在固定優先級模式中
(注意即使在此模式中,也不能通過手動改變 ARB_SEL 位來重新配製優先級)
中斷偏移(INTOFFSET)寄存器
中斷偏移寄存器中的值表明了是哪個 IRQ 模式的中斷請求在 INTPND 寄存器中。此位可以通過清楚 SRCPND
和 INTPND 自動清除
1,ARB_SEL 位會被輪換方式而改變,例如如果 REQ1 被服務,ARB_SEL 位被自動改爲 01b 以便 REQ1 進入到
最低的優先級。ARB_SEL 改變的詳細結果如下:
– 如果 REQ0 或 REQ5 被服務,ARB_SEL 位不會改變
– 如果 REQ1 被服務,ARB_SEL 位被改爲 01b。
– 如果 REQ2 被服務,ARB_SEL 位被改爲 10b。
– 如果 REQ3 被服務,ARB_SEL 位被改爲 11b。
– 如果 REQ4 被服務,ARB_SEL 位被改爲 00b。
SRCPEND 0X4A00 0000 R/W 0表示中斷未被請求,1表示中斷被請求(當寫入數據時,只會清楚帶1的位,所以可以通過對對應位賦予1來清除數據)
INTMOD 0X4A00 0004 R/W 0=IRQ 1=FIRQ
INTMASK 0X4A00 0008 R/W 0=中斷服務可用 1=不可用
PRIORITY 0X4A00 000C R/W IRQ優先級
INTPND 0X4A00 0010 R/W 0=未請求中斷,1=中斷源聲明中斷請求
SUBSRCPND 0X4100 0018 R/W 同SRCPND
INTSUBMSK 0X4100 001C R/W 同INTMASK