《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于S3C2440A的Windows CE系統快速啟動方案
基于S3C2440A的Windows CE系統快速啟動方案
石本智,王亞非,周 鷹,曾宏亮
摘要: 基于S3C2440A的WindowsCE系統快速啟動方案,如何快速啟動節省時間,是WindowsCE使用者普遍關注的一個問題。為了加快系統的啟動速度,在介紹WindowsCE啟動流程和分析影響啟動速度的因素的基礎上,提出減小內核體積、使用Multi-bin技術、關閉串口打印輸出、使用不同注冊表形式等快速啟動方案,并通過測量數據作為依據。實驗證明,提出的方案明顯提高了WindowsCE系統的啟動速度。
Abstract:
Key words :

0 引言
    微軟的Windows CE系統是被廣泛使用的嵌入式系統之一。在產品的研究開發中,一些嵌入式操作系統的啟動速度所花時間比較長,Wind-ows CE也不例外。由于各種因素的影響,有些情況下啟動甚至超過1 min。而在實際的嵌入式電子產品中客戶需要體驗一個極速爽快而又穩定的系統,避免長時間等待。因此,如何快速啟動Windows CE系統是一個很重要的內容。本文將基于三星公司的S3C2440A處理器和Windows CE
系統,分析Windows CE的啟動原理和影響其啟動速度的原因,給出加快啟動的方案。

1 Windows CE的啟動過程
   
一般嵌入式系統的引導過程如圖1所示。其中引導加載程序(BootLoader)是系統加電后運行的第一段代碼,主要是通過設置寄存器初始化硬件的工作方式,如設置時鐘、中斷控制寄存器等,完成內存映射、初始化MMU等。其次是系統執行環境的初始化,將系統內核(Kernel)和應用程序的映像從只讀存儲器加載或拷貝到系統的RAM中執行,完成系統內核的加載以及應用程序的啟動等。


1.1 BootLoader的啟動
     BootLoader是在操作系統內核運行之前運行的一段小程序,它可以初始化硬件設備、建立內存空間的映射圖,從而將系統的軟硬件環境帶到一個合適的狀態,為調用操作系統內核準備好環境。引導程序完成自己的任務后,就將控制權移交給內核。通常引導程序是放置在不易丟失的快閑存儲器的開始地址或者是系統冷啟動時PC寄存器的初始值。
1.2 內核啟動時加載過程
    BootLoader按照Windows CE啟動方式的不同可分為2大類:下載模式和啟動加載模式。當BootLoader把nk.bin解壓到RAM后就把CPU控制權交給Windows CE內核。
    啟動加載模式是BootLoader的正常加載模式,BootLoader從存儲介質將操作系統加載到RAM中,并從RAM中啟動運行操作系統。該過程并沒有用戶的介入。
    下載模式則是BootLoader從開發工作站下載操作系統映像文件到目標設備的RAM,然后再將它寫到目標設備的FLASH等存儲介質中。該過程要通過串口線或網絡連接等通信手段從主機(Host)下載文件。因此,不同的加載模式會直接影響內核啟動加載時間。

2 影響Windows CE啟動速度的主要因素
   
影響系統啟動時間的因素可以從系統本身和硬件2個方面考慮。
2.1 系統加載
   
系統在啟動時涉及到BootLoader、內核加載、初始化進程、硬件的驅動程序和接口程序以及應用程序組等。因此Windows CE啟動速度要與引導程序初始化時間、內核加載時間、硬件驅動的加載時間、應用程序的加載時間等有著直接的關系。
2.2 硬件
   
顯然,CPU的頻率及效率、內存的大小及類型等直接影響著系統的啟動速度。例如ARM7和ARM9對運行系統的速度是明顯不一樣的,另外,內存方面選擇NoR FLASH還是NAND FLASH其也會對啟動速度有一定的影響。

3 Windows CE快速啟動的方案
   
快速啟動Windows CE的方案大致有下面幾種。由于實驗條件的限制,本文主要討論內核體積、使用Multi-bin技術、串口打印輸出、不同注冊表形式對啟動速度的影響。
3.1 使用合理的閃存和選擇適當的Windows CE內核的運行方式
    當前應用于嵌入式系統的FLASH從制作工藝角度講主要分為2種:NOR FLASH與NANDFLASH。NOR的特點是芯片內執行(Execute In Place,XIP),這樣應用程序可以直接在NOR FLASH中直接運行,而無需再把代碼讀到系統的RAM中,但是很低的寫入和擦除速度大大影響了它的性能。NAND結構能提供極高的單元密度,可以達到高存儲密度,并且寫入和擦除的速度也很快,但在使用時必須先寫入驅動程序,而且,由于不能向壞塊寫入,這就需要在NAND FLASH上自始自終都必須進行虛擬映射,可能會產生額外的時間花費。因此,選擇不同閃存對啟動速度有一定的影響。
    也正因為上面2種閃存的特點不同,Windows CE的運行方式直接與它們有關,可以分為2類,一是在NOR FLASH上直接運行,二是用NAND FLASH來存儲,再加載到內存中運行。前者把內核的可執行映像燒寫到FLASH上,可以實現XIP;而后者是先把內核的壓縮文件放在FLASH上,啟動時先解壓,再執行。因此,在NOR FLASH上直接運行會速度更快。
3.2 精簡Windows CE內核體積和加載內容
   
在Windows CE啟動過程中,加載內核過程和加載內核之后所占時間是不一樣的,前者是從NANDFLASH加載內核到內存,占了絕大多數時間,后者其實只占很小的一小部分時間。因此,可以通過縮短加載內核過程中的時間來實現縮短啟動時間。要做到這一點,可以通過縮小內核來實現。也就是組件全部根據所需要的來定制,刪除掉所有不必要的組件。其中,最有效的辦法之一是縮減字體,去除不需要的其他國家的字庫。
    另一方面,內核在啟動時會有很多靜態和延遲加載依賴項,尤其是各種安全性DLL,這肯定增加啟動時間。啟動時加載的驅動程序、設備和自啟動程序也會占用一定的時間。因此,在設備能正常啟動和應用的情況下,應以精簡的原則,以最小化來加載設備驅動和啟動程序,以最少數量的組件和驅動來啟動系統,減少不必要的時間延遲。例如可以精簡設備上的外殼程序和啟動界面等。
3.3 使用Multi-bin技術
   
Windows CE中提供了Multi-bin的功能。字面上Multi-bin是多個bin的意思,它將整個內核映像分成幾部分,在Windows CE啟動時可只加載核心部分,這樣就能有效提高Windows CE的啟動速度。方法如下:
    首先,修改Eboot,使其支持BinFN(Binary Rom Image File System)文件系統,支持Multi-bin的下載和燒寫,同時在注冊表platfor-m.reg中增加BinFN分區。
    其次,修改配置文件config.bib,根據實際情況設置各分區空間和類型;并對XIPKERNEL進行規劃,將最小化系統內核打包到其中,即在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定制內核時系統選用的RAM and ROM File System文件系統,注冊表格式選用Hive-based Registry,它支持永久保存。
    這樣經過編譯后,將生產的xip.bin和XIPKERNEL.bin文件在EBoot.nb0的引導下進行燒寫,完成Windows CE的燒寫工作并可以使用Wi-ndows CE系統。
3.4 關閉串口輸出
   
Windows CE在啟動時把很多啟動信息狀態輸出,因為串口RETAILMSG等輸出打印信息要花一定的時間,故在編譯沒有出錯的情況下把串口輸出信息關閉,也可以提高啟動速度。做到這點可以在Debug.c文件中去除OEMWriteDebugByte(),OEMReadDebugByte()函數的輸出內容。
3.5 選擇適當的注冊表方式
   
注冊表分為基于RAM的注冊表(RAM-Based Registry)和基于Hive的注冊表(Hive-Based Registry)兩種方式,一般都用于記錄著所有應用程序和硬件外設的驅動信息。
    基于RAM的注冊表把整個注冊表作為一個對象存儲堆存放在系統的內存中,如果對系統進行冷啟動或者系統斷電,對注冊表的所有改動都會使存儲的數據丟失,所以基于對象存儲方式實現的注冊表一般用于較少斷電的系統,或一般不需要冷啟動的系統。但如果使用基于RAM的注冊表,它會使系統速度更快,占用空間更小,對注冊表的讀寫訪問操作會變得非常高效,系統開發者應提供一種使系統能夠在斷電前后備份和恢復注冊表的方法,通常這種備份和恢復注冊表的方法的缺點是需要兩次啟動,在啟動過程中必須多一次熱啟動才能使恢復的注冊表有效,因此效率相對比較低。
    基于HIVE結構存儲的注冊表使用文件存儲注冊表數據,它與系統使用的文件系統的類型無關。這種方式使系統斷電前后無須備份和恢復注冊表數據,這使系統冷啟動時速度更快。
    總之,基于RAM的注冊表在經常熱啟動的設備上是非常高效的,在經常冷啟動的設備中性能卻讓人失望;而基于Hive的注冊表在經常冷啟動或不常熱啟動的設備中非常高效。因此,采用不同的類型也會影響Windows CE的啟動效率,用戶應根據實際情況進行合理選擇。

4 實驗與分析
4.1 實驗平臺
   
(1)硬件平臺。ARM處理器為三星公司的S3C2440A,標稱工作頻率為400 MHz;存儲器包括2片32 MB SDRAM,1片64 MB的NAND FLASH;設備模塊包括USB,LCD,UART。
    (2)軟件平臺。Bootloader:bootloader VER-5.0;操作系統:Windows CE5.O;開發工具:Platform Builder 5.0。
4.2 實驗條件
   
在建立PB工程時選擇移動手持設備(Mobile Handheld)模板,其他組件選擇如表1所示,就可以實現支持MFC編程、文字表格編輯、MP3播放的手持設備系統,在該系統下得到表1數據。


    表2為實現MP3播放功能精簡系統前后的比較。精簡前的方法是選擇移動手持設備(MobileHandheld)模板,加入MP3支持;精簡后的方法是選擇CustomDevice模板,只選擇MP3 Codec,wMA and MP3Streaming和Windows Media Player就可以實現MP3播放,不加入其他所有不必要的組件,從而減小內核體積。表3、表4的數據都是基于MobileHandheld模板下不同注冊表RAM和Hive下得到的數據。


4.3 實驗結果及分析
   
表2至表4中對比了相應優化帶來啟動時間的比較,時間的計算使從開始啟動到進入windows CE界面為止。從表2可以看出,使用Multi-bin技術可以很大提升啟動速度,縮短了啟動時間;而串口輸出信息也有一定的影響,特別是在輸出信息很多的情況下,所占用的時間是不可忽視的。
    另外,表3則表明,內核、組件等的構成系統大小也直接影響著啟動的速度,故應當盡量減少系統不必要的內核和組件。


    由表4、表5可以看出,在沒有修改注冊表的時候,使用基于RAM的注冊表速度比基于Hive的注冊表的略快一些,但在修改注冊表之后,由于前者通常需要啟動2次,故速度要慢于后者。

5 結語
   
在嵌入式操作系統Windows CE的開發和使用中,系統的啟動速度不僅體現設備的性能,而且也直接影響到使用者的感受和體驗。本文先介紹Windows CE的啟動流程,分析影響Windows CE啟動速度的因素,再提出一些加快啟動速度的方案。雖然系統啟動還與具體的硬件有關,在具體應用時還需要綜合考慮。但本文提出的方法對對基于其他硬件結構下使用WindowsCE系統時優化其啟動速度同樣有重要的指導意義。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
一本一本久久a久久精品牛牛影视| 欧美亚洲综合另类| 亚洲最黄网站| 亚洲黑丝一区二区| 在线播放精品| 国产综合在线看| 国产日韩在线一区| 国产精品第一页第二页第三页| 欧美激情在线有限公司| 欧美成人激情在线| 美脚丝袜一区二区三区在线观看 | 国产最新精品精品你懂的| 国产精品视频| 国产精品日日摸夜夜添夜夜av| 国产精品成人一区二区三区夜夜夜| 欧美日韩精品一区二区| 欧美—级a级欧美特级ar全黄| 女生裸体视频一区二区三区| 免费精品99久久国产综合精品| 老鸭窝91久久精品色噜噜导演| 狂野欧美激情性xxxx| 蜜臀va亚洲va欧美va天堂| 免费久久99精品国产| 欧美国产日韩一区二区三区| 欧美片在线观看| 欧美日韩亚洲一区二区三区在线观看| 欧美日韩ab片| 欧美特黄一级大片| 国产精品久久久久久一区二区三区| 国产精品高潮久久| 国产精品一区毛片| 国产一区二区日韩精品| 一区二区三区在线免费观看| 亚洲电影观看| 日韩视频在线播放| 亚洲一区二区不卡免费| 午夜伦理片一区| 久久精品欧美日韩| 99精品热视频只有精品10| 日韩视频在线一区二区三区| 一本色道久久综合亚洲精品不卡| 亚洲影院高清在线| 久久精品综合一区| 欧美成人日韩| 欧美午夜视频在线观看| 国产女优一区| 伊人久久噜噜噜躁狠狠躁| 亚洲日本va午夜在线电影| 制服丝袜激情欧洲亚洲| 欧美一区二区久久久| 亚洲人成人一区二区三区| aa成人免费视频| 亚洲欧美激情诱惑| 久久青青草综合| 欧美成人69av| 国产精品jvid在线观看蜜臀| 国产午夜久久久久| 亚洲激情在线激情| 亚洲午夜未删减在线观看| 久久成人精品视频| 一本色道久久综合亚洲二区三区| 欧美一区亚洲| 欧美激情按摩| 国产视频久久| 亚洲日本电影在线| 午夜精品久久久久久久蜜桃app| 亚洲韩国青草视频| 亚洲女同性videos| 久久久久久久波多野高潮日日| 欧美久久成人| 国产午夜精品久久| 亚洲另类自拍| 久久国产欧美精品| 亚洲视频综合| 久久性色av| 国产精品视频内| 亚洲欧洲精品一区二区三区波多野1战4| 亚洲视频一区在线观看| 亚洲国产精品视频一区| 午夜影院日韩| 欧美美女日韩| 韩日欧美一区二区| 中文网丁香综合网| 亚洲精品美女在线观看| 欧美一区二区三区免费观看视频| 欧美激情bt| 国产一区二区在线免费观看| 99视频一区| 最新日韩精品| 久久精品人人做人人综合 | 欧美一区二区在线看| 正在播放日韩| 麻豆成人精品| 国产日韩欧美麻豆| 99精品热视频| 最新高清无码专区| 久久免费视频网| 国产精品入口66mio| 99国产精品视频免费观看一公开| 亚洲国产精品999| 欧美一区二区观看视频| 欧美日韩中文字幕在线视频| 亚洲黄色av一区| 亚洲福利在线视频| 久久99伊人| 国产精品夜色7777狼人| 夜夜嗨av色综合久久久综合网| 亚洲人成精品久久久久| 久久久久久噜噜噜久久久精品| 国产精品欧美风情| 夜夜嗨av一区二区三区免费区| 日韩视频一区| 欧美粗暴jizz性欧美20| 在线免费观看视频一区| 久久精品一区四区| 欧美一区二区在线视频| 国产精品成人一区二区| 一级成人国产| 亚洲小说欧美另类社区| 欧美日韩精品不卡| 亚洲精品网站在线播放gif| 亚洲精品国产精品国自产观看| 麻豆精品网站| 在线电影国产精品| 亚洲国产精品一区二区尤物区| 久久尤物电影视频在线观看| 狠狠狠色丁香婷婷综合久久五月| 性欧美在线看片a免费观看| 欧美一区二区精品在线| 国产酒店精品激情| 午夜免费电影一区在线观看| 久久精品视频va| 国模吧视频一区| 亚洲电影视频在线| 男女精品网站| 91久久久在线| 在线视频你懂得一区| 欧美午夜精品一区| 亚洲一区二区三区高清| 午夜日韩电影| 国产亚洲欧美另类中文| 久久激情视频免费观看| 美女视频黄免费的久久| 亚洲国产精品欧美一二99| 99re66热这里只有精品4| 欧美日韩麻豆| 亚洲欧美清纯在线制服| 久久精品日韩欧美| **欧美日韩vr在线| 夜夜嗨av一区二区三区免费区| 欧美日韩色婷婷| 亚洲一区二区三区四区视频| 欧美在线观看网站| 精品二区久久| 99精品欧美一区二区三区| 国产精品久久一卡二卡| 亚洲女人天堂av| 毛片基地黄久久久久久天堂| 亚洲免费成人av电影| 亚洲欧美一区二区精品久久久| 国产午夜精品视频| 亚洲精品少妇30p| 国产精品久久久久久久久果冻传媒| 亚洲欧美精品一区| 老司机成人在线视频| 91久久精品国产91久久性色tv| 亚洲一区在线观看免费观看电影高清| 国产精品久久久久永久免费观看| 欧美中文在线免费| 欧美激情女人20p| 亚洲一区二区视频在线观看| 久久久午夜视频| 亚洲精品免费一二三区| 新狼窝色av性久久久久久| 狠狠色噜噜狠狠狠狠色吗综合| 亚洲毛片在线观看| 国产精品视频九色porn| 亚洲高清在线播放| 国产精品porn| 亚洲国产日韩欧美在线图片| 欧美性猛片xxxx免费看久爱| 亚洲成色精品| 欧美午夜精品久久久久久久| 久久精品视频免费播放| 欧美日韩视频在线| 欧美专区福利在线| 欧美日韩免费| 亚洲福利在线观看| 国产精品国产a| 亚洲区一区二| 国产日产高清欧美一区二区三区| 亚洲理论电影网| 国产有码一区二区| 亚洲一区二区三区在线| 一区二区三区在线高清| 欧美在线电影| 一区二区欧美激情| 欧美电影电视剧在线观看| 午夜精品久久99蜜桃的功能介绍| 欧美日本一区二区高清播放视频|