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