基于S3C2440A的Windows CE系統快速啟動(dòng)方案
3.2 精簡(jiǎn)Windows CE內核體積和加載內容
在Windows CE啟動(dòng)過(guò)程中,加載內核過(guò)程和加載內核之后所占時(shí)間是不一樣的,前者是從NANDFLASH加載內核到內存,占了絕大多數時(shí)間,后者其實(shí)只占很小的一小部分時(shí)間。因此,可以通過(guò)縮短加載內核過(guò)程中的時(shí)間來(lái)實(shí)現縮短啟動(dòng)時(shí)間。要做到這一點(diǎn),可以通過(guò)縮小內核來(lái)實(shí)現。也就是組件全部根據所需要的來(lái)定制,刪除掉所有不必要的組件。其中,最有效的辦法之一是縮減字體,去除不需要的其他國家的字庫。
另一方面,內核在啟動(dòng)時(shí)會(huì )有很多靜態(tài)和延遲加載依賴(lài)項,尤其是各種安全性DLL,這肯定增加啟動(dòng)時(shí)間。啟動(dòng)時(shí)加載的驅動(dòng)程序、設備和自啟動(dòng)程序也會(huì )占用一定的時(shí)間。因此,在設備能正常啟動(dòng)和應用的情況下,應以精簡(jiǎn)的原則,以最小化來(lái)加載設備驅動(dòng)和啟動(dòng)程序,以最少數量的組件和驅動(dòng)來(lái)啟動(dòng)系統,減少不必要的時(shí)間延遲。例如可以精簡(jiǎn)設備上的外殼程序和啟動(dòng)界面等。
3.3 使用Multi-bin技術(shù)
Windows CE中提供了Multi-bin的功能。字面上Multi-bin是多個(gè)bin的意思,它將整個(gè)內核映像分成幾部分,在Windows CE啟動(dòng)時(shí)可只加載核心部分,這樣就能有效提高Windows CE的啟動(dòng)速度。方法如下:
首先,修改Eboot,使其支持BinFN(Binary Rom Image File System)文件系統,支持Multi-bin的下載和燒寫(xiě),同時(shí)在注冊表platfor-m.reg中增加BinFN分區。
其次,修改配置文件config.bib,根據實(shí)際情況設置各分區空間和類(lèi)型;并對XIPKERNEL進(jìn)行規劃,將最小化系統內核打包到其中,即在project.bib中的modules和Files中添加必須的內核文件,例如系統必須加載組件有nk.exe,coredll.dll,filesys.exe,fatfsd.
dll,diskcaehe.dll,Fatutil.dll,binfs.dll,fsdmgr.dll,mspart.dll,smFLASH.dll,boot.hv等。
最后,在用Platform Builder定制內核時(shí)系統選用的RAM and ROM File System文件系統,注冊表格式選用Hive-based Registry,它支持永久保存。
這樣經(jīng)過(guò)編譯后,將生產(chǎn)的xip.bin和XIPKERNEL.bin文件在EBoot.nb0的引導下進(jìn)行燒寫(xiě),完成Windows CE的燒寫(xiě)工作并可以使用Wi-ndows CE系統。
3.4 關(guān)閉串口輸出
Windows CE在啟動(dòng)時(shí)把很多啟動(dòng)信息狀態(tài)輸出,因為串口RETAILMSG等輸出打印信息要花一定的時(shí)間,故在編譯沒(méi)有出錯的情況下把串口輸出信息關(guān)閉,也可以提高啟動(dòng)速度。做到這點(diǎn)可以在Debug.c文件中去除OEMWriteDebugByte(),OEMReadDebugByte()函數的輸出內容。
3.5 選擇適當的注冊表方式
注冊表分為基于RAM的注冊表(RAM-Based Registry)和基于Hive的注冊表(Hive-Based Registry)兩種方式,一般都用于記錄著(zhù)所有應用程序和硬件外設的驅動(dòng)信息。
基于RAM的注冊表把整個(gè)注冊表作為一個(gè)對象存儲堆存放在系統的內存中,如果對系統進(jìn)行冷啟動(dòng)或者系統斷電,對注冊表的所有改動(dòng)都會(huì )使存儲的數據丟失,所以基于對象存儲方式實(shí)現的注冊表一般用于較少斷電的系統,或一般不需要冷啟動(dòng)的系統。但如果使用基于RAM的注冊表,它會(huì )使系統速度更快,占用空間更小,對注冊表的讀寫(xiě)訪(fǎng)問(wèn)操作會(huì )變得非常高效,系統開(kāi)發(fā)者應提供一種使系統能夠在斷電前后備份和恢復注冊表的方法,通常這種備份和恢復注冊表的方法的缺點(diǎn)是需要兩次啟動(dòng),在啟動(dòng)過(guò)程中必須多一次熱啟動(dòng)才能使恢復的注冊表有效,因此效率相對比較低。
基于HIVE結構存儲的注冊表使用文件存儲注冊表數據,它與系統使用的文件系統的類(lèi)型無(wú)關(guān)。這種方式使系統斷電前后無(wú)須備份和恢復注冊表數據,這使系統冷啟動(dòng)時(shí)速度更快。
總之,基于RAM的注冊表在經(jīng)常熱啟動(dòng)的設備上是非常高效的,在經(jīng)常冷啟動(dòng)的設備中性能卻讓人失望;而基于Hive的注冊表在經(jīng)常冷啟動(dòng)或不常熱啟動(dòng)的設備中非常高效。因此,采用不同的類(lèi)型也會(huì )影響Windows CE的啟動(dòng)效率,用戶(hù)應根據實(shí)際情況進(jìn)行合理選擇。
4 實(shí)驗與分析
4.1 實(shí)驗平臺
(1)硬件平臺。ARM處理器為三星公司的S3C2440A,標稱(chēng)工作頻率為400 MHz;存儲器包括2片32 MB SDRAM,1片64 MB的NAND FLASH;設備模塊包括USB,LCD,UART。
(2)軟件平臺。Bootloader:bootloader VER-5.0;操作系統:Windows CE5.O;開(kāi)發(fā)工具:Platform Builder 5.0。
4.2 實(shí)驗條件
在建立PB工程時(shí)選擇移動(dòng)手持設備(Mobile Handheld)模板,其他組件選擇如表1所示,就可以實(shí)現支持MFC編程、文字表格編輯、MP3播放的手持設備系統,在該系統下得到表1數據。本文引用地址:http://dyxdggzs.com/article/150877.htm
評論