WinCE5.0與4.0比較
出處:互聯(lián)網(wǎng) 發(fā)布于:2011-09-04 15:32:27
5.0下的中斷:感覺上就一個字“亂”,主要是這些代碼分別放在不同的地方,或許這樣更合理化吧,誰知道MS怎么想的。主要分布在以下幾個地方:(A1)platform\common\src\common\intr;(A2)platform\common\src\xxx(type of cpu)\yyy(intel or samsung or …)\zzz\intr;(A3)platform\zzz\src\kernel\oal\intr.c。
5.0下中斷初始化流程:從時間上來看先是OEMInit(oal\init.c)->OALIntrInit(A2中實現(xiàn))->BSPIntrInit(A3中實現(xiàn),這個地方比較關鍵了,因為要添加或修改中斷就要在這里來做,主要實現(xiàn)SYSINTR_XXX與IRQ_XXX的映射)。OK中斷初始化完畢。
5.0下中斷的enable流程:在5.0下面沒有找到SC_InterruptInitialize,或者類似的實現(xiàn),不過我想5.0下面的應該和4.2下面的一樣。由驅(qū)動的InterruptInitialize終調(diào)用到OEMInterruptEnable(在A1\common\oem.c中實現(xiàn))->OALIntrEnableIrqs(在A3中實現(xiàn))->BSPIntrEnableIrq(在A3中實現(xiàn))。至此enable完成。對應的disbale和done也是在相應的文件中實現(xiàn)。
從名字上也可以看出來A1提供了一個對內(nèi)核開放的中斷層,由它再去調(diào)用對應的oal層的代碼A2,A2再在其中調(diào)用A3中的代碼;則A3中主要的就是提供一個給程序員注冊的一個接口BSPIntrInit。
4.2下的中斷:InterruptInitialize(具體的驅(qū)動中注冊中斷與事件)->SC_InterruptInitialize(系統(tǒng)的函數(shù),可以根據(jù)private\winceos\coreos\nk\kernel\kwin32.c中的const PFNVOID Win32Methods[]數(shù)組得知這是一個系統(tǒng)函數(shù)。這一步為猜測,該函數(shù)在private\winceos\coreos\nk\kernel\intrapi.c中實現(xiàn)。enable中斷-通過調(diào)用下面的函數(shù),之后將相應的事件放入中斷事件隊列)->DoInterruptEnable(在private\winceos\coreos\nk\kernel\intrapi.c中實現(xiàn),先調(diào)用pfnOEMTranslateSysIntr映射一下,不過我沒有找到這個函數(shù)指針的原型。之后才是OEMInterruptEnable)->OEMInterruptEnable(在platform\xxx\kernel\hal\cfw.c中,地球人都知道。在這個文件中有個static void OEMInitInterrupts(void),是在oeminit中被調(diào)用的,差點被忽悠了。)這只是enable(也包含初始化),相應的disable和done也在相應的文件中實現(xiàn)。可能用4.2用多了,感覺這些中斷的處理一氣呵成,很容易理解,就是修改或者增加比較麻煩。要分別處理OEMInterruptXXX中相應的各個中斷。
版權與免責聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://hbjingang.com,違反者本網(wǎng)將追究相關法律責任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權等法律責任。
如涉及作品內(nèi)容、版權等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關權利。
- ARM技術架構(gòu)與應用開發(fā)實踐指南2026/1/6 10:40:19
- 嵌入式實時操作系統(tǒng)(RTOS)選型與移植技術指南2025/12/31 10:42:31
- 工業(yè)嵌入式系統(tǒng):通信接口技術選型與抗干擾設計實踐2025/12/15 14:36:53
- 深入解析嵌入式 OPENAMP 框架:開啟異核通信新時代2025/7/22 16:27:29
- 一文快速了解OPENWRT基礎知識2025/7/14 16:59:04









