摘 要:對(duì)Windows CE的系統(tǒng)結(jié)構(gòu)、功能及特點(diǎn)的全面了解為基礎(chǔ),結(jié)合實(shí)際開發(fā)經(jīng)歷,總結(jié)出了Windows CE操作系統(tǒng)鏡像的定制、生成、調(diào)試以及應(yīng)用程序的開發(fā)、發(fā)布的一般方法和步驟。
關(guān)鍵詞:嵌入式操作系統(tǒng)Windows CE內(nèi)核定制
中圖分類號(hào):TP316文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1674-098X(2011)06(a)-0020-01
嵌入式操作系統(tǒng)內(nèi)核精小、效率高,具有大量的應(yīng)用程序接口(API),開發(fā)應(yīng)用程序簡單,而且嵌入式應(yīng)用軟件非常豐富。在眾多嵌入式操作系統(tǒng)中,Microsoft推出的Windows CE是目前最具應(yīng)用前景的嵌入式系統(tǒng)之一。
Windows CE具備完整的操作系統(tǒng)特性和端對(duì)端開發(fā)環(huán)境,可以為有限資源的硬件設(shè)計(jì)多線程、完整優(yōu)先級(jí)、多任務(wù)的操作系統(tǒng)。Windows CE為開發(fā)人員提供了一個(gè)相當(dāng)不錯(cuò)的集成開發(fā)環(huán)境VS2005,開發(fā)人員使用這個(gè)集成開發(fā)環(huán)境就可以根據(jù)它的提示完成操作系統(tǒng)鏡像的定制、編譯與調(diào)試工作,并可在此環(huán)境中進(jìn)行應(yīng)用軟件、驅(qū)動(dòng)程序的開發(fā)。
1 Windows CE系統(tǒng)開發(fā)過程
定制一個(gè)基于Windows CE的平臺(tái)操作系統(tǒng)涉及到使用第三方的OS配置中的核心組件、添加或刪除組件,將平臺(tái)按照目標(biāo)平臺(tái)定制,添加一個(gè)BSP,創(chuàng)建一個(gè)OEM適配層OAL,并且創(chuàng)建一個(gè)引導(dǎo)程序等工作。Windows CE應(yīng)用系統(tǒng)的開發(fā)流程如圖1所示。
1.1 OAL的定制
這一步是BSP的開發(fā)過程。用戶可以通過創(chuàng)建一個(gè)OAL來實(shí)現(xiàn)操作系統(tǒng)內(nèi)核與串行口、并行口和定時(shí)器等硬件設(shè)備之間的通信。OAL也包括硬件中斷處理和電源管理接口以及系統(tǒng)啟動(dòng)時(shí)的硬件檢測(cè)和初始化。創(chuàng)建OAL的幾個(gè)階段:初始化內(nèi)核,這一階段的目的是完成必要的資源配置描述,例如微處理器工作所需要的內(nèi)存的布局;創(chuàng)建一個(gè)基本OAL,這個(gè)階段主要完成啟動(dòng)時(shí)初始化平臺(tái),包括打開調(diào)試端口,以便進(jìn)行調(diào)試,初始化通信環(huán)境,并且建立系統(tǒng)時(shí)鐘周期;增強(qiáng)OAL功能,在這一階段,實(shí)現(xiàn)中斷服務(wù)例程(ISR),管理時(shí)鐘和定時(shí)器,并且為應(yīng)用程序提供平臺(tái)的信息;完成OAL,在這一階段中,可以實(shí)現(xiàn)任何附加特性,例如,可以創(chuàng)建日志進(jìn)程,創(chuàng)建驅(qū)動(dòng)程序開發(fā)包(DDK),定義擴(kuò)展內(nèi)存,支持高精度的時(shí)鐘,并且配置注冊(cè)表。一旦OAL設(shè)計(jì)完成,用戶就可以將它與內(nèi)核靜態(tài)連接(如圖1)。
1.2 生成操作系統(tǒng)鏡像
用戶可以先設(shè)計(jì)好平臺(tái)所要實(shí)現(xiàn)的一些主要功能,通過VS2005來增加和刪除某些組件來定制目標(biāo)平臺(tái)。用戶可以創(chuàng)建的組件包括應(yīng)用程序,如設(shè)備驅(qū)動(dòng)程序之類的動(dòng)態(tài)鏈接庫,靜態(tài)庫和一個(gè)傳輸層。一個(gè)設(shè)備驅(qū)動(dòng)程序連接OS和一個(gè)設(shè)備,使OS可以識(shí)別設(shè)備并將設(shè)備的服務(wù)提供給應(yīng)用程序。傳輸層是用作進(jìn)行主機(jī)和一個(gè)相連的設(shè)備進(jìn)行通信的。如果要導(dǎo)出自己定制的軟件開發(fā)包SDK,就需要用到傳輸層。 在創(chuàng)建或加入部分組件后,修改相應(yīng)的配置文件,最后編譯生成二進(jìn)制OS鏡像文件NK.BIN,也就是平臺(tái)最終要用的Windows CE內(nèi)核。
1.3 下載到目標(biāo)平臺(tái)
當(dāng)生成NK.BIN文件后,使用BootLoader,經(jīng)過一些設(shè)置,便可以通過以太網(wǎng)或并行口可以將NK.BIN下載到目標(biāo)平臺(tái)的SRAM中,或燒入到FlashROM中,Windows CE操作系統(tǒng)隨之啟動(dòng)。
在生成OS鏡像文件NK.BIN之后,可以導(dǎo)出SDK。當(dāng)開發(fā)好基本操作系統(tǒng)平臺(tái)后,可以利用VS2005將該平臺(tái)的SDK導(dǎo)出。導(dǎo)出的SDK是一個(gè)自解壓可執(zhí)行文件,可以為平臺(tái)上其他應(yīng)用程序的開發(fā)提供支持。一旦創(chuàng)建了SDK,開發(fā)者就可以將SDK安裝在一臺(tái)裝有VS2005的計(jì)算機(jī)上,然后可以開發(fā)基于此系統(tǒng)的應(yīng)用程序。
2 結(jié)束語
Windows CE作為一種嵌入式操作系統(tǒng),既具有嵌入式系統(tǒng)所要求的實(shí)時(shí)性、內(nèi)存小等特性,又具有Windows系統(tǒng)的許多共性。同時(shí)VS2005給嵌入式系統(tǒng)應(yīng)用程序的開發(fā)提供了極大的方便。因此,利用Windows CE開發(fā)嵌入式系統(tǒng)不僅可以獲得最好的性能,而且可以縮短開發(fā)周期和降低風(fēng)險(xiǎn)。
參考文獻(xiàn)
[1]張冬泉.Windows CE實(shí)用開發(fā)技術(shù)[M].北京:電子工業(yè)出版社,2006.
[2]白浪.WINCE.NET系統(tǒng)下BootLoader的開發(fā)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2004(2):530.
[3]周毓林,寧楊,陸貴強(qiáng)等.Windows CE.net內(nèi)核定制及應(yīng)用開發(fā)[M].北京:電子工業(yè)出版社,2005.