Boot Loader按照WinCE啟動方式的不同可分為兩大類:一類是下載模式,一類是本地啟動模式。
下載模式的基本執行過程為:
重定位RAM---初始化調試端口---初始化平臺基本設備---打印用戶菜單---初始化網絡參數---下載OS內核---啟動OS
以Eboot為例,啟動過程函數調用的順序和功能如下:
Startup( )-----------------初始化CPU、內存控制器等
KernelRelocate( )-------代碼重定位至RAM
OEMDebugInit( )-------初始化調試端口(一般為串口)
OEMPlatformInit( )----初始化板上設備(初始化顯示、RTC、OAL與eboot共享參數、打印用戶菜單、網卡等)
OEMPreDownload( )---下載前準備(設置設備名、初始化MAC/IP參數)
DownloadImage( )------下載映像文件
OEMLaunch( )-----------啟動OS
一般來說,Eboot所涉及的文件主要有:
Startup.s:包括以上提到的Startup( )函數,源代碼位于%WINCE\Platform\Common\Src\***...和%WINCE\Platform\***\Src\Bootloader\eboot目錄
Main.c: 包括以上提到的OEMDebugInit( )、OEMPlatform( )、OEMPreDownload( )、OEMLaunch( ),源代碼位于%WINCE\Platform\***\Src\Bootloader\eboot目錄
Blcommon.c:包括以上提到的KernelRelocate( )、DownloadImage( ),源代碼位于%WINCE\Public\Common\Oak\Drivers\Ethdbg\Blcommon目錄
Eboot下載的過程主要包括:
(1)設備通過Bootme使開發機獲取設備IP(DHCP或者指定IP);
(2)開發機通過TFTP協議下載映像到設備上;
(3) 根據需求把映像燒寫到Flash中或直接從RAM中啟動OS