gic的分配器distributor為每乙個中斷都維護了乙個狀態機,這些中斷狀態包括active(正在處理)、inactive(停止處理)、pending(掛起)、active and pending(處理與掛起),具體如圖所示。
結合圖所示的中斷狀態轉換,gic檢測中斷的流程如下。
(1)當gic檢測到乙個中斷產生時,會將中斷標記為pending狀態(a1)。
(2)gic分配器distributor從pending狀態的中斷中選擇乙個優先順序最高的中斷,傳送到確定的cpu inte***ce中。
(3)cpu inte***ce決定中斷是否傳送給cpu,如果該中斷優先順序滿足要求,gic會傳送乙個中斷訊號給cpu。
(4)當乙個cpu進入中斷異常後,會讀取gicc_iar暫存器(中斷響應暫存器)獲取需要處理的中斷號(hw interrupt id)來響應該中斷(一般由核心中斷處理程式完成,暫存器會返回硬體中斷號)。當gic感知到程式讀取暫存器後,如果中斷源是pending狀態,則將其修改為active狀態(c)
linux arm中斷系統之GIC
gic為中斷控制器,不要和arm core的中斷搞混了,這些中斷都是連線到arm core的irq或者fiq上的。和 可以先不用考慮,用於安全模式。gic可以用於單核多核系統,這時候要拋開微控制器的簡單中斷了,從圖上看有sgi software generated interrupt ppi pri...
ARM中斷處理之GIC
收藏一篇gic的文章 gic中斷.本章的主要內容如下 中斷處理 interrupthandling 主要描述 n gic如何識別中斷 n 軟體如何通過程式設計gic來配置和控制中斷 n gic處理任意cpu inte ce中斷的狀態機 n cpu的異常模式下如何與gic互動 優先化 prioriti...
8 6 ARM介面程式設計 中斷GIC
管理這些中斷源,中斷擴充套件 管理中斷的優先順序 管理中斷源,報告中斷id 管理中斷的響應,遮蔽某些中斷 記錄中斷,中斷掛起 外部中斷 k2 gpx1 1 按下 0 彈起 1 gic中斷源表 中斷源 與 中斷id 和gic管腳 一一對應 1 配置gpio gpx1 1 k2 gpx1con 7 4 ...