WinCE下的中斷處理過程15814101899

2021-09-30 07:44:50 字數 706 閱讀 1332

中斷在系統設計中的應用非常廣泛,可以說,硬體中斷、軟體中斷無處不在,在wince下驅動開發更是如此,比如:按鍵中斷、觸控螢幕中斷、audio中斷、dma中斷.....等等,幾乎含概每個模組。因此,了解中斷的處理過程對驅動開發極其重要,下面對wince下的中斷處理過程做乙個簡單介紹。

中斷處理可以分為兩部分:中斷服務例程-isr、中斷服務執行緒-ist。系統在處理中斷異常的時候,應該要盡可能快的完成,因此,我們應該isr中做簡短的處理,把中斷標識返回給中斷處理器,越快越好。那麼就要把大部分的處理留給ist來處理。我們可以簡單的認為,isr的任務就是完成把硬體中斷也就是物理中斷轉為系統中斷並返回。

下面再來了解一下ist,ist就是乙個執行緒,在驅動初始化的時候建立並等待乙個事件,當然,在這之前要先建立乙個事件,並與中斷相關聯起來,當中斷產生以後該事件觸發ist,ist裡通常是使用者的處理程式。ist的實現必須先實現兩個過程:ist的中斷必須和乙個事件相關聯,ist必須通過waitforsingleobject來等待這個事件的喚醒,ist的最後要呼叫interruptdone來對登出中斷,否則該中斷只能用一次,一般我們在驅動的***_init函式中實現。

ist在bsp/common/intr/intr.c中,這裡面的內容包括init、enable、disable、oeminterrupthandler等函式,主要是對中斷的初始化、使能、處理等,其中最關鍵的是oeminterrupthandler。以下是我在該函式中對eint的簡單處理部分**:

WinCE中中斷的處理過程

中斷是硬體與軟體打交道的重要方法,因此,大多數驅動程式都涉及到對中斷的處理,本文就驅動程式的開發人員以及bsp的開發人員的角度,來談談windowsce中中斷的處理過程。如果乙個驅動程式要處理乙個中斷,那麼驅動程式需要首先建立乙個事件,可以使用createevent函式,然後呼叫interrupti...

中斷處理過程

部分摘自 中斷 所謂中斷就是指cpu在正常執行程式的時候,由於內部 外部事件的出發 或由程式預先設定而引起cpu暫時中止當前正在執行的程式,儲存被執行程式相關資訊到棧中,轉而去執行為內部 外部事件 或由程式預先設定的事件的中斷服務子程式,待執行完中斷服務子程式後,cpu再獲取被儲存在棧中被中斷的程式...

中斷及中斷處理過程

1.中斷和異常的概念區別 intel的官方文件裡將中斷和異常理解為兩種中斷當前程式執行的不同機制。這是中斷和異常的共同點。不同點在於 中斷 interrupt 是非同步的事件,典型的比如由i o裝置觸發 異常 exception 是同步的事件,典型的比如處理器執行某條指令時發現出錯了等等。中斷又可以...