2011年2月17日 星期四

讓你的WinCE6可以支援在FAT32的Storage 開機了

目的:
Windows CE作業系統中內建只支援FAT16所以最大的磁碟只能支援的2GB,為了支援2G以上的Size我們利用WinCE 6 R3提供的新功能FAT32 Biosloader來修正這個問題.

時間:90 分鐘

工具:
l   Diskpart.exe
利用此工具來作為Disk分割用.
路徑:C:\WINCE600\PLATFORM\CEPC\SRC\BOOTLOADER\BIOSLOADER\UTILITIES\DISKPART

l   Microsoft Keyboard Layout Creator(MSKLC.exe)
利用此工具來驗証實作的Keyboard Layout是否正確.
網址:http://msdn.microsoft.com/en-us/goglobal/bb964665.aspx

實作:
一、BootLoader 檔案產生:

1.  開啟Microsoft Visual Studio 2005 並建立一個新的專案(File->選擇New->Project)
   a.  Project Types中選擇Platform Builder for Windows Embedded CE 6.0
   b.  Template 中選擇OS Design
   c.  最後Name欄位中鍵入BLDR32.
   d.  OK完成專案建立.

2. Platform Builder 會建立一個Windows Embedded CE 6.0 OS Design Wizard來引導.

3.  按下Next開啟建立
   a.  Board Support Package頁面,選擇CEPC: x86按下一步
   b.  Design Templates頁面,選擇PDA Device按下一步
   c.  Design Template Variants頁面,選擇Enterprise Web Pad按下一步.

4.  按下來都使用預設值選擇下一步直到建立完成為止.

5.  Solution Explorer 右鍵選擇Properties

6.  展開Configuration Properties 選擇General 項目
   a.  選擇Configuration Manger按鈕
   b.  Active solution configuration 下拉功能表選擇為「CEPC x86 Release
   c.  完成後按Close,ok完成設定.

7.  選擇Build->Build Multi-OS 去建立Run-time Image.(20分鐘)

8.  選擇Build-> Open release directory in build window 開啟命令提供視窗.

9.  鍵入WinCE.bat 去設定環境變數.

10.將目錄切換至C:\WINCE600\PLATFORM\CEPC\SRC\BOOTLOADER\BIOSLOADER\INIPARSER然後鍵入”Build –C” 去編譯Source Code,完成後檢查是否有產生iniparse.lib檔在C:\WINCE600\PLATFORM\CEPC\lib\x86\retail路徑下

11.將目錄切換至C:\WINCE600\PLATFORM\CEPC\SRC\BOOTLOADER\BIOSLOADER\LOADER\FIXED\MAIN然後鍵入 “ Build –C” 去編譯Source Code,完成後檢查是否有產生bldr.lib檔在C:\WINCE600\PLATFORM\CEPC\lib\x86\retail路徑下

12.利用記事本編輯a.C:\WINCE600\PLATFORM\CEPC\SRC\BOOTLOADER\BIOSLOADER\LOADER\FIXED\FAT32\目錄下的Sources檔案,修改Sourcelibs 參數路徑為

C:\WINCE600\PLATFORM\CEPC\lib\x86\retail\iniparse.lib \
C:\WINCE600\PLATFORM\CEPC\lib\x86\retail\bldr.lib

    儲存上述修改再關閉sources 檔案.

13.將目錄切換到C:\WINCE600\PLATFORM\CEPC\SRC\BOOTLOADER\BIOSLOADER\LOADER\FIXED\FAT32然後鍵入“ Build –C” 去編譯Bootloader Source code. 完成後檢查是否有產生”bldr_fat32.exe”,“bldr_fat32.map”,” bldr_fat32.pdp”,”
bldr_fat32.rel”
檔在C:\WINCE600\PLATFORM\CEPC\target\x86\retail路徑下

14.手動將上述四個檔案複製到C:\WINCE600\OSDesigns\BLDR32\BLDR32\Wince600\CEPC_x86\cesysgen\Platform\cepc\target\x86\retail 目錄下.

PS:粗體字的目錄需要自行建立

15.回到命令工具將目錄切換至a.C:\WINCE600\PLATFORM\CEPC\SRC\BOOTLOADER\BIOSLOADER\LOADER\FIXED\FAT32鍵入“makebldr” 來產生 BLDR 檔案檢查目錄下是否產生bldr檔案

二、Boot Section 檔案產生:
1.將目錄切換至a.C:\WINCE600\PLATFORM\CEPC\SRC\BOOTLOADER\BIOSLOADER\BOOTSECTOR\FAT32鍵入 “Buuild –C”去編輯Boot SectionSource Codes.檢查目錄下是否產生 BSECT.IMG

三、製作支援FAT32 開機裝置
1. 將路徑切換到a.C:\WINCE600\PLATFORM\CEPC\SRC\BOOTLOADER\BIOSLOADER\UTILITIES\DISKPART鍵入”Buuild –C”去編輯Diskpart Source Codes. Diskpart.exe會產生在 C:\WINCE600\PLATFORM\CEPC\target\x86\retail目錄下.

1.   After building boot loader, Copy \WINCE500\PUBLIC\COMMON\OAK\CSP\X86\BIOSLOADER\LOADER\bldr to the floppy disk to replace old one. Follow those steps to install x86 BIOS loader:
2.   Using the floppy disk to boot.
3.   Run “mkdisk c:”. It will install x86 BIOS loader onto DOM.
    4.   Modify the boot.ini on DOM. Find the “BinFile” in boot.ini. If it is not BinFile=nk.bin”,correct it.
   5.   Refer “Copy Windows CE Image onto DOM” section to transfer NK.BIN.

Now, you DOM will boot without DOS and show splash BMX file to load Windows CE.