WinCE中中斷的處理過程 驅動開發人員角度

2021-05-22 08:36:43 字數 855 閱讀 3958

中斷是硬體與軟體打交道的重要方法,因此,大多數驅動程式都涉及到對中斷的處理,本文就驅動程式的開發人員以及bsp的開發人員的角度,來談談windows ce中中斷的處理過程。

如果乙個驅動程式要處理乙個中斷,那麼驅動程式需要首先建立乙個事件,可以使用createevent函式,然後呼叫interruptinitialize將該事件與中斷號繫結,這一步就會使能該中斷,oal中的oeminerrupteenable就會被呼叫,如果該函式不返回true的話,interruptinitialize就會失敗。然後驅動程式中的ist就可以使用waitforsingleobject函式來等待中斷的發生。

當乙個硬體中斷發生之後,作業系統陷入異常,中斷向量指示進入ce的異常處理程式,該異常處理程式然後呼叫oal的oeminterrupthandler函式,該函式檢測硬體之後,將硬體中斷轉換為軟體的中斷號,返回給系統。該中斷號就是上面提到的interruptinitialize中使用的那個中斷號。系統得到該中斷號之後,就會找到該中斷號對應的事件,並喚醒等待相應事件的執行緒(ist),然後ist就可以在使用者態進行中斷處理。處理完成之後,ist需要呼叫interruptdone來告訴作業系統中斷處理結束,作業系統再次呼叫oal中的oeminterruptdone函式,最後完成中斷的處理。

在上面的描述中,驅動程式需要使用的是interruptinitialize,waitforsingleobject和interruptdone三個函式,而bsp開發者需要主要考慮的是oeminerrupteenable,oeminterrupthandler,oeminterruptdone三個函式。當然,這是上面提到的一些函式,實際上bsp開發者在中斷部分還需要考慮init以及disable等等函式,這裡就不再討論了。

本文拋磚引玉,還請各位大俠指正!

WinCE中中斷的處理過程

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

WinCE下的中斷處理過程15814101899

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

WinCE中中斷的處理過程 驅動開發人員角度

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