基于Intel PXA270的Windows CE5.0下Boot Loader實現
Windows CE.NET是微軟公司向嵌入式領域推出的一款操作系統,被廣泛應用于平板電腦、數碼相機、彩屏手機、PDA等許多產品當中。
Windows CE的開發過程可以分為:0AL(OEM Abstraction Layer)、驅動、應用程序開發三個步驟。其中,0AL開發是Windows CE開發過程中最基本的一步,而Boot Loader設計在0AL開發中又具有極為關鍵的作用。因此,本文以Windows CE 5.0在Xscale PXA270處理器上的Ethernet Boot Loader的設計和實現為例,對Boot Loader的實現進行闡述,并分析Boot Loader的架構、啟動控制流程和配置安裝。
對于Windows CE嵌入式操作系統來說,系統加電后第一條指令就是Boot Loader的代碼。Boot Loader通常位于目標設備上的非易失存儲設備中(如Flash),并且在系統加電或重置時自動執行。通常可以通過JTAG或串口工具把Boot Loader燒寫到目標設備上,Boot Loader的唯一目標就是加載并執行操作系統映像。
在嵌入式應用系統最終產品化后,Boot Loader將不是必須的。因為Windows CE不僅提供了利用Boot Loader加載系統的啟動方式,而且提供了通過啟動向量ResetVector 加載系統的啟動方式。但在系統開發階段,Boot Loader是必須的,它將使開發更加方便高效。
硬件平臺架構
處理器采用英特爾的XScale PXA270系列處理器,可以配合2700G多媒體加速器,提升高分辨率圖像處理和3D加速處理能力。硬件開發板的外設包括外部存儲器、串口和DM9000AE 100Mb以太網接口芯片。Boot Loader的體系結構
一個典型的以太網Boot Loader由Blcommon、OEM代碼(針對不同硬件平臺需要修改代碼)Eboot和網絡驅動程序等部分組成組成,如圖1所示。
圖1 Boot Loader框架結構
● Blcommon庫
BLCOMMON庫提供了豐富Boot Loader基本功能,包括復制Boot Loader到RAM 以便高速運行,解析 .bin文件,控制系統加載過程等等。代碼庫一般放置在%_WINCEROOT% PUBLICCOMMONOAKDRIVERS ETHDBGBLCOMMON。其主要文件為blcommon.c。
● OEM代碼
OEM代碼是與設備初始化及硬件擴展有關的代碼,位置在%_WINCEROOT% PLATFORM平臺名稱>SRCBOOTLOADER EBOOT。
● EBoot庫
Eboot庫提供了DHCP、TFTP和UDP服務。BooLoader與Platform Builder建立TFTP連接.并下載系統鏡像。其中TFTP用于從開發工作站的Platform Builder下載Windows CE操作系統鏡像(這是本文所使用的加載調試方式)。Eboot庫代碼位于%_WINCEROOT% PUBLIC COMMONOAKDRIVERS ETHDBGEBOOT。
● 網絡驅動庫
EDBG驅動程序庫集成了一些常見以太網驅動,為Bootloader和操作系統訪問提供了通用接口。Boot Loader利用這些接口下載Windows CE運行時映象,操作系統利用這些接口實現與Platform Builder的KITL連接。
Boot Loader啟動控制流程
由于硬件的差異,Boot Loader的功能可能不同,圖2所示的是Boot Loader的較為通用的啟動控制流程。
圖2 Boot Loader啟動控制流程
評論