主要和次要中斷
GPIO 中斷處理原本就是兩階段程式。 從一般用途 I/O (GPIO) 控制器中斷,這會導致 GPIO 架構延伸模組 (GpioClx) 插斷服務常式 (ISR) 執行,稱為 主要中斷。 此 ISR 會將中斷 GPIO 針腳對應至全域系統中斷 (GSI) ,並將此 GSI 傳遞至硬體抽象層 (HAL) 。 HAL 會產生 次要中斷 ,以執行第二個 ISR,此 ISR 會透過此 GSI 以邏輯方式連接到 GPIO 針腳。 此程式會顯示在 GPIO 驅動程式支援概觀的圖表中。
GpioClx 會實作 ISR 來服務 GPIO 控制器透過設定為中斷輸入的 GPIO 針腳接收的中斷要求。 當周邊裝置在 GPIO 針腳上判斷提示中斷,而且在 GPIO 控制器中啟用中斷並解除遮罩時,GPIO 控制器硬體會判斷提示處理器的中斷。 為了回應此中斷,GpioClx 中的 ISR 會查詢 GPIO 控制器,以識別產生中斷的 GPIO 針腳,然後判斷指派給這個針腳的 GSI。 GpioClx ISR 會將此 GSI 傳遞至 HAL,而 HAL 會呼叫以邏輯方式連接到 GSI 的 ISR。
一般而言,這個第二個 ISR 屬於判斷 GPIO 針腳中斷之周邊裝置的驅動程式。 如需周邊設備磁碟機如何以邏輯方式將 ISR 連接到 GPIO 插斷針腳的相關資訊,請參閱 GPIO 型中斷資源。