一.中斷
復位後,所有中斷都處於禁止狀態,且預設優先順序為0。在使用任何乙個中斷之前,需要:
在確定實際的分組優先順序和子優先順序是,必須考慮以下因素:
中斷優先順序由優先順序暫存器控制,寬度為3~8位。例如,若設計中只實現了3位優先順序,優先順序配置暫存器如下圖:
由於0~4位未實現,他們讀出總是為0,對這些位的寫操作會被忽略,因此可能的優先順序就會有8種。
利用系統控制塊在(scb)中乙個名為優先順序分組的配置暫存器,每個具有可程式設計優先順序的優先順序配置暫存器可被分為兩部分:搶占優先順序和子優先順序。
在處理器已經在處理中斷時,能否產生另外乙個中斷,是由該中斷的搶占優先順序決定的。子優先順序只會用在具有相同搶占優先順序同時發生的情況下,此時,具更高的子優先順序(數值更小)會被優先處理。
二.向量表和向量表重定位
要將向量表重定位到sram區域的開頭處,可以使用下面**:
如果微控制器有32個中斷源,那麼向量表大小計算:【32(中斷)+16(系統異常)】*4(每個向量位元組數) = 192。將其擴大為下乙個2的整數就得到256位元組,因此,向量表的位址可被設定為0x00000000,0x00000100,0x00000200等等
由於中斷的最小數量為1,最小的向量對齊為128位元組,因此,vtor的最低7位保留。且被強制置為0。
向量表重定位可用於以下情形:
三.中斷輸入和掛起行為
在中斷處於活躍狀態時,處理器無法再中斷完成和異常返回前再次接受同乙個中斷請求。
中斷的掛起狀態位於中斷掛起狀態暫存器中,軟體**可以訪問這些暫存器,因此,可以手動清除或設定中斷的掛起狀態
對於脈衝中斷請求,若在處理器開始處理前,中斷訊號請求了多次,他們會被當做一次中斷請求。
即使中斷被禁止了,它的掛起狀態任然可以被置位,在這種情況下,若中斷稍後使能了,它仍可以被觸發得到中斷服務。有些時候,這種情況不是我們所希望看到的,因此需要在使能nvic中斷前手動清除掛起狀態。
中斷和異常
中斷和異常 中斷訊號的處理方式 分緊急部分和不緊急部分 中斷處理 必須能夠重入,以便能夠中斷巢狀 中斷和異常的產生 乙個irq interrupt request 代表中斷控制器上的一根中斷線,和乙個中斷向量 單cpu 可程式設計中斷控制器 pic 多cpu 改進的可程式設計中斷控制器 apic 乙...
中斷和異常
中斷通常定義為乙個事件,該事件改變處理器執行的指令順序。中斷通常分為同步中斷與非同步中斷。異常是同步的,i o中斷是非同步的。中斷可以分為 i o裝置發出的中斷請求 irq 都可以被遮蔽,乙個中斷被遮蔽以後,控制單元就忽略他。只有硬體故障等幾個危急事件才是非遮蔽中斷。異常可以分為 可以糾正的異常,例...
中斷和異常
1 中斷機制的誕生 早期計算機,各程式只能序列執行,系統資源利用率低,為了解決這個問題,從而誕生了作業系統 作為計算機的管理者 引入中斷機制,實現了多道程式併發執行。本質 發生中斷就意味著需要作業系統介入,開展管理工作。2 中斷的概念和作用 1 當中斷發生時,cpu立即進入核心態。2 當中斷發生後,...