CPU中斷
- 共14個CPU中斷(INT1~INT14)
- 其中12CPU中斷連結周邊中斷擴充,每個CPU中斷又可分八個周邊中斷
- 故總共12X8=96個中斷來源
周邊中斷示意圖
Multiplexing of Interrupts Using the PIE Block
- CPU有12中斷,但每個中斷它可以擴充成八個週邊中斷(x為12個CPU中斷)
- 周邊中斷源
- 中斷向量表
- PIE中斷旗標暫存器(發生中斷產生Latch,把中斷的Bit鎖在這個地方)
- PIE中斷致能暫存器
- 當PIEACK為0時,表示CPU已準備接收中斷,中斷才能送至CPU層
- 中斷旗標暫存器
- 中斷致能暫存器
- 全域中斷遮罩位元(最後關卡,設為0才會送到CPU)
中斷路徑流程圖
- 包含PIE中斷源的任何週邊或外部中斷,且其自身週邊中斷模組亦能致能。
- PIE識別出INTx.y,且PIE中斷的位元被Latch住,PIEIFRx.y=1。
- 當中斷要由PIE送致CPU層要有兩個條件成立。
- PIEIERx.y=1
- PIEACKx要被清成0
- 當3(a)與3(b)為真,送中斷由PIE到CPU層,此時應體會將PIEACKx設為1,表示可以在從PIE向CPU發送組中的其他中斷
- CPU中斷旗標暫存器會LATCH中斷,並顯示1
- Enable後才會傳遞給CPU
- CPU中斷遮罩位元設0時,才能送中斷到CPU
- CPU收到中斷後會清除IERx、INTM設為1並清除EALLOW,之後進行中斷服務。
- PIEIFRx與PIEIERx來解碼出中斷向量表,並判斷優先順序(如下圖)
1為最高,8為最低