基于S3C2440A的Windows CE系統(tǒng)快速啟動方案
0 引言
微軟的Windows CE系統(tǒng)是被廣泛使用的嵌入式系統(tǒng)之一。在產(chǎn)品的研究開發(fā)中,一些嵌入式操作系統(tǒng)的啟動速度所花時間比較長,Wind-ows CE也不例外。由于各種因素的影響,有些情況下啟動甚至超過1 min。而在實際的嵌入式電子產(chǎn)品中客戶需要體驗一個極速爽快而又穩(wěn)定的系統(tǒng),避免長時間等待。因此,如何快速啟動Windows CE系統(tǒng)是一個很重要的內(nèi)容。本文將基于三星公司的S3C2440A處理器和Windows CE
系統(tǒng),分析Windows CE的啟動原理和影響其啟動速度的原因,給出加快啟動的方案。
1 Windows CE的啟動過程
一般嵌入式系統(tǒng)的引導(dǎo)過程如圖1所示。其中引導(dǎo)加載程序(BootLoader)是系統(tǒng)加電后運行的第一段代碼,主要是通過設(shè)置寄存器初始化硬件的工作方式,如設(shè)置時鐘、中斷控制寄存器等,完成內(nèi)存映射、初始化MMU等。其次是系統(tǒng)執(zhí)行環(huán)境的初始化,將系統(tǒng)內(nèi)核(Kernel)和應(yīng)用程序的映像從只讀存儲器加載或拷貝到系統(tǒng)的RAM中執(zhí)行,完成系統(tǒng)內(nèi)核的加載以及應(yīng)用程序的啟動等。
1.1 BootLoader的啟動
BootLoader是在操作系統(tǒng)內(nèi)核運行之前運行的一段小程序,它可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),為調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好環(huán)境。引導(dǎo)程序完成自己的任務(wù)后,就將控制權(quán)移交給內(nèi)核。通常引導(dǎo)程序是放置在不易丟失的快閑存儲器的開始地址或者是系統(tǒng)冷啟動時PC寄存器的初始值。
1.2 內(nèi)核啟動時加載過程
BootLoader按照Windows CE啟動方式的不同可分為2大類:下載模式和啟動加載模式。當(dāng)BootLoader把nk.bin解壓到RAM后就把CPU控制權(quán)交給Windows CE內(nèi)核。
啟動加載模式是BootLoader的正常加載模式,BootLoader從存儲介質(zhì)將操作系統(tǒng)加載到RAM中,并從RAM中啟動運行操作系統(tǒng)。該過程并沒有用戶的介入。
下載模式則是BootLoader從開發(fā)工作站下載操作系統(tǒng)映像文件到目標(biāo)設(shè)備的RAM,然后再將它寫到目標(biāo)設(shè)備的FLASH等存儲介質(zhì)中。該過程要通過串口線或網(wǎng)絡(luò)連接等通信手段從主機(Host)下載文件。因此,不同的加載模式會直接影響內(nèi)核啟動加載時間。
2 影響Windows CE啟動速度的主要因素
影響系統(tǒng)啟動時間的因素可以從系統(tǒng)本身和硬件2個方面考慮。
2.1 系統(tǒng)加載
系統(tǒng)在啟動時涉及到BootLoader、內(nèi)核加載、初始化進程、硬件的驅(qū)動程序和接口程序以及應(yīng)用程序組等。因此Windows CE啟動速度要與引導(dǎo)程序初始化時間、內(nèi)核加載時間、硬件驅(qū)動的加載時間、應(yīng)用程序的加載時間等有著直接的關(guān)系。
2.2 硬件
顯然,CPU的頻率及效率、內(nèi)存的大小及類型等直接影響著系統(tǒng)的啟動速度。例如ARM7和ARM9對運行系統(tǒng)的速度是明顯不一樣的,另外,內(nèi)存方面選擇NoR FLASH還是NAND FLASH其也會對啟動速度有一定的影響。
3 Windows CE快速啟動的方案
快速啟動Windows CE的方案大致有下面幾種。由于實驗條件的限制,本文主要討論內(nèi)核體積、使用Multi-bin技術(shù)、串口打印輸出、不同注冊表形式對啟動速度的影響。
3.1 使用合理的閃存和選擇適當(dāng)?shù)腤indows CE內(nèi)核的運行方式
當(dāng)前應(yīng)用于嵌入式系統(tǒng)的FLASH從制作工藝角度講主要分為2種:NOR FLASH與NANDFLASH。NOR的特點是芯片內(nèi)執(zhí)行(Execute In Place,XIP),這樣應(yīng)用程序可以直接在NOR FLASH中直接運行,而無需再把代碼讀到系統(tǒng)的RAM中,但是很低的寫入和擦除速度大大影響了它的性能。NAND結(jié)構(gòu)能提供極高的單元密度,可以達(dá)到高存儲密度,并且寫入和擦除的速度也很快,但在使用時必須先寫入驅(qū)動程序,而且,由于不能向壞塊寫入,這就需要在NAND FLASH上自始自終都必須進行虛擬映射,可能會產(chǎn)生額外的時間花費。因此,選擇不同閃存對啟動速度有一定的影響。
也正因為上面2種閃存的特點不同,Windows CE的運行方式直接與它們有關(guān),可以分為2類,一是在NOR FLASH上直接運行,二是用NAND FLASH來存儲,再加載到內(nèi)存中運行。前者把內(nèi)核的可執(zhí)行映像燒寫到FLASH上,可以實現(xiàn)XIP;而后者是先把內(nèi)核的壓縮文件放在FLASH上,啟動時先解壓,再執(zhí)行。因此,在NOR FLASH上直接運行會速度更快。
評論