矢量中斷是當cpu讀取位於0x18處的IRQ中斷指令的時候,系統自動讀取對應於該中斷源確定地址上的指令取代0x18處的指令。
基本介紹
- 中文名:矢量中斷
- 外文名:Vector Int
矢量中斷是當cpu讀取位於0x18處的IRQ中斷指令的時候,系統自動讀取對應於該中斷源確定地址上的指令取代0x18處的指令,通過跳轉指令系統就直接跳轉到對應中斷服務函式首地址。因此,矢量中斷節省了中斷回響時間。 例如 EXTINT0中斷的向量地址為0x20,則在0x20處的代碼如下:ldr PC,=HandlerEXTINT0. 當EXTINT0中斷產生的時候,系統就自動跳轉到HandlerEXTINT0函式中。
非矢量中斷處理方式是一種較傳統的中斷處理方法,當系統產生中斷的時候,系統將INTPEND暫存器中對應標誌位置位, 然後在0x18處找到中斷服務函式首地址,跳轉到中斷服務函式中。在中斷服務函式中通過讀取INTPEND暫存器中對應標誌位來判斷中斷源,根據預先設定的優先權關係再跳到對應中斷源的處理函式中。由此可見非矢量中斷用軟體實現查找對應中斷的方式,因此,其回響速度較矢量中斷慢。

