WinCE下BootLoader的啟動流程和開發(fā)經(jīng)驗
?。?)下載部分
一般在平臺調試完畢后,可以在不用人工干預的情況下自動加載CE,這也是BootLoader的功能之一。而在調試階段時,這需要通過Loader所支持的命令來進行操作的,借助于這些命令不僅可以完成硬件平臺的部分測試,還能完成CE的BootLoader程序最為重要的一個功能--下載CE映像。如果說硬件調試功能可以由其它的程序代替而不放入BootLoader中,但是下載映像文件卻是BootLoader必需的功能。
CE映像文件通常叫做nk.bin,它是Windows CE二進制數(shù)據(jù)格式文件,不僅包含了有效的程序代碼,還有按照一定規(guī)則加入的控制信息。當然,也可以選擇生成.sre格式的代碼文件,但是相于對前一種格式,它的代碼要長很多,所需要的下載時間也更長。
(4)支持DOC部份
對于WinCE操作系統(tǒng)而言,豐富的多媒體功能是其一大特點。但是隨之而來的問題是,如果選擇了圖形界面和中文支持,系統(tǒng)很容易大大超出嵌入式系統(tǒng)上百KB的數(shù)量級。而DOC(Disk On Chip)則提供了一種相對廉價的大存儲容量的解決方案。
DOC本質上是一種加以軟件控制的NAND格式的Flash,通過TFFS這一軟件層提供對WinCE的支持。由于DOC不能像內存一樣被直接訪問,所以其加載WinCE的過程有些特殊,必須要在BootLoader中加入專門的代碼,才能使用DOC來存放WinCE映像文件。
4. Boot Loader的開發(fā)經(jīng)驗總結
(1)嵌入式系統(tǒng)中,Bootloader的意義與作用與PC上的BIOS有點類似,它對開發(fā)板上的主要部件如CPU、SDRAM、FLASH、串口等進行了初始化,也可以使用Bootloader下載文件到開發(fā)板和啟動系統(tǒng)等。因此,一個功能比較強大的Bootloader已經(jīng)相當于一個微型的操作系統(tǒng)了。
(2)從CE的BootLoader開發(fā)流程可以看出,BootLoader在完成下載CE映像和加載映像的主要功能外,還具有一些調試硬件的功能。當然,這些功能不是必需的,隨不同的用戶有不同的定義,但這是在開發(fā)CE系統(tǒng)中不可跳過的一環(huán)。
?。?)嵌入式系統(tǒng)應用開發(fā)不同于PC機,其開發(fā)過程同時涉及軟硬件以及上層應用開發(fā)綜合考慮;而PC機應用開發(fā)是建立在已經(jīng)定制好的硬件和操作系統(tǒng)平臺上,開發(fā)者只需調用系統(tǒng)提供的接口和服務完成相應的功能。考慮到成本約束,嵌入式系統(tǒng)的硬件平臺通常是根據(jù)應用量身定制,通常所用的MPU、存儲器、外圍設備等有多種選擇余地,使平臺的引導設計變得十分復雜。因此,從零實現(xiàn)的話會需要相當長的過程,通常的做法是利用微軟為每種類型CPU提供的標準開發(fā)板的BootLoader例程,從這些例程中尋找與硬件平臺最接近的作為標本程序,然后根據(jù)硬件平臺作相應的改動。
總之,BootLoader是開發(fā)WinCE系統(tǒng)第一步,也是很關鍵的一步。只有得到一個穩(wěn)定工作的Loader程序,才能進一步開發(fā)WinCE的BSP,才能使整個嵌入式系統(tǒng)獲得成功。
評論