1 建立配置 Windows CE的軟硬件環境配置和調試Windows CE需要1臺高性能開發工作站和1臺目標調試設備。Platform Builder 4.2運行在Windows 2000或者以上版本的高性能開發工作站上。Platform Builder提供了創建和調試Windows CE映射NK.BIN的集成開發環境,如向
1 建立配置
Windows CE的軟硬件環境配置和調試Windows CE需要1臺高性能開發工作站和1臺目標調試設備。Platform Builder 4.2運行在Windows 2000或者以上版本的高性能開發工作站上。Platform Builder提供了創建和調試Windows CE映射NK.BIN的集成開發環境,如向導和工具欄,支持活動模板庫(ATL)、微軟基本類庫(MFC)等,為支持的處理器提供編譯器、內核調試器以及各種遠程調試工具。目標調試平臺可以是經過適當配置以后的普通PC機,也可以是嵌入式微處理器模塊。開發工作站通過以太網或者串、并行口與目標平臺連接,并將Windows CE操作系統映像文件NK.BIN下載到目標平臺。下載完成之后,Windows CE在目標平臺啟動。在開發工作站上,可以使用Platform Builder提供的調試工具查看Windows CE的運行情況。以太網和串、并行口這兩種連接類型的差別是:以太網連接,下載速度較快;串、并行口連接,下載速度較慢。開發工作站需要以太網網卡,目標平臺需要NE2000兼容的調試以太網網卡 串行口、并行口映像文件和調試工具都使用以太網 映像文件使用并行口下載,目標平臺的調試信息使用串行口傳送。
2 Platform Builder 3.0提供的配置文件
配置文件包括4種文件類型:二進制映像生成文件.BIB、注冊表文件.REG、目錄和文件配表文件.DAT、數據庫文件.DB。通過修改這些配置文件可以裁剪優化Windows CE。用戶根據需要可以創建自己的配置文件,PB提供的主要配置文件如下表所列。
配置文件列表
.BIB文件 .REG文件 .DAT文件 .DB文件
Common.bib Common.reg Common.dat Common.db
Dcom.bib Dcom.reg Servers.dat
Msmq.bib Msmq.reg
Platform.bib Platform.reg Platform.dat Platform.db
Project.bib Project.reg Project.dat
Wceshellfe.bib Wceshellfe.reg Wceshellfe.dat Wceshellfe.db
Wceappsfe.bib Wceappsfe.reg Wceappsfe.dat Wceappsfe.db
Config.bib Script reg
2.1 二進制映像生成文件.BIB
.BIB文件是文本文件,標識包含在Windows CE映像中的目標模塊、組件和文件。一個.BIB文件包含4個部分:FILES、MODULES、MEMORY和CONFIG。
(1)FILES部分
FILES分配一部分內存空間給靜態數據文件。這部分主要包括字體文件(.TTF)、文本文件(.TXT)、位圖文件(.BMP)和聲音文件(.WAV)等。例如:
;Name Path Memory Type
;------ --------------------------------------- ----------- -----
Tahoma.ttf $(_FLATRELEASEDIR).ttf NK SHU
Name:在Windows CE系統中的文件名。
Path:文件在開發工作站中的位置。
Memory:文件所屬的內存區。
Type:定義文件屬性。Windows CE中的文件有以下文件屬性:S為系統文件、H為隱含文件、U為非壓縮文件、R為壓縮資源文件、C為壓縮文件。1個文件可以同時具有幾種屬性。
上例說明NK內存區包含開發工作站的$(_FLATRELEASEDIR).ttf文件。在Windows CE系統中,tahoma.ttf的文件屬性是系統隱含的非壓縮文件。
(2)MODULES部分
列出加載在內存中的目標模塊和組件,包括所有的可執行文件.EXE和動態鏈接庫.DLL。例如:
;Name Path Memory Type
;------- --------------------------------------- --------- ------
device.exe $(_FLATRELEASEDIR).exe NK SH
device模塊加載到內存區。Windows CE系統中device.exe具有系統和隱含屬性。
(3)MEMEORY部分
把物理內存分成2個部分:數據存儲區和程序存儲區。例如
;Name Start address size(bytes) Type
;------- -------------- ------------ --------------
NK 80200000 00600000 RAMIMAGE
RAM 80800000 00800000 RAM
在Windows CE系統中,內存分成3種類型:RAM、RAMIMG和RESERVED。RAM規定內存大小;RAMIMG規定ROM空間;RESERVED為保留的內存空間,內核不能使用這部分內存,但是應用程序可以訪問。上例說明NK的起始地址是80200000,它占有6MB內存空間,作為ROM用于數據存儲區。RAM在80800000開始,占有8MB的內存空間,用于程序存儲區。
(4)CONFIG部分
這部分不是必不可必的。在這部分進行一些屬性設置,如是否壓縮和ROM大小等。
2.2 注冊表文件.REG
注冊表文件建立操作系統映像的注冊表入口。注冊表是一個數據,存儲了大量的配置信息,包括應用程序信息、設備驅動程序的配置、系統配置信息、用戶參數和其它相關數據。當目標平臺冷啟動時,Makeimg.exe使用.REG文件創建默認注冊表。Platform.REG配置與平臺有關的注冊表信息,如設備驅動程序入口。Project.REG設置與工程有關的注冊表格。注冊表文件的格式:
[HKEY_LOCAL_MACHINE]
“Launch10” = "shell.exe"
"Launch20" = "device.exe"
"Launch30" = "gwes.exe"
"Depend30" = "hex:14,00"
上述注冊表入口設置規定內核在啟動時必須自動運行shell.EXE和device.exe模塊,gwes.EXE模塊必須在device.EXE正常啟動以后才能運行。
2.3 數據庫文件.DB
Windows CE提供內置的輕量級數據庫管理系統。Windows CE的屬性數據庫由1張包含記錄的表組成,每個記錄包含許多不同的屬性,每個屬性有3種信息:標志屬性的ID號、類型和值。例如:
.Record:
Field:402001f:“{000214A0-0000-0000-C000-000000000046}”
Field:42020003:15
Field:42030003:2
End
屬性數據庫是一種平面結構,不能定義屬性數據庫之間的關系。使用Microsoft ActiveX Data Object for Windows CE(ADOCE)技術可以容量地訪問屬性數據庫,甚至可以使用SQL語句查詢信息。
2.4 目錄分配表文件.DAT
.DAT文件定義Windows CE映像NK.NIB黑認的目錄和文件結構。注意,Winodws CE不支持像Windows 9x/2000一樣的盤符驅動器,而且沒有當前目錄的概念。例如:
root:-Directory("Program Files")
Directory("Program Files"):Directory("MY Work")
root:-Directory("My Documents")
Directory("My Documents"):-File("MyFile.doc")
生成2個根目錄:Program Files和MyDocuments。Program Files有1個子目錄:My Work。文件MyFile.DOC位于My Document目錄中。注意MyFile.DOC必須出現在一個.BIB文件中,這樣,映像文件中會有MyFile.DOC。
3 設置環境變量、生成映像文件NK.BIN
3.1 設置環境變量
在所有配置文件中,都存在條件語句IF Enviroment Value……END IF。當條件成立時,IF和END IF之間的信息包含在映像文件NK.BIN中;條件不成立時,則不包含相關模塊和文件。通過設置環境變量可以添加或者刪除NK.BIN中的模塊和組件。以.BIB文件為例:
;Name Path Memory Type
;-------- ------------------------------------ ---------- ------
IFIMGUSB
IF CEPC_UHCI
uhci.dll $(_FLATRELEASEDIR).dll NK SH
ENDIF
IF CEPC_OHCI
ohci.dll $(_FLATRELEASEDIR).dll NK SH
ENDIF
usbd.dll $(_FLATRELEASEDIR).dll NK SH
usbhid.dll $(_FLATRELEASEDIR).dll NK SH
ENDIF
這里IMGUSB、CEPC_UHCI、CEPC_OHCI都是邏輯型環境變量。在PB中,可以使用2種方法設置環境變量。方法1:點擊Platform菜單的Setting…,打開平臺設置對話框,分別輸入Variable和Value設置環境變量。方法2:點擊Build菜單的Open Build Release Directory,打開命令提示窗口,在命令提示窗口中設置環境變量。在命令行中輸入SETIMGUSB=1,動態鏈接庫usbd.dll和usbhid.dll被包含到映像文件NK.BIN。uhci.dll和ohci.dll是否包含在NK.BIN中,取決于環境變量CEPC_UHCI和CEPC_OHCI的設置。如果SET IMGUSB=0,KN.BIN中不包含上述4個動態鏈接庫。
3.2 Makeimg.exe工具
生成映像文件NK.BIN是平臺創建過程的最后一步,也是配置Windows CE的最終目標。Makeimg.exe使用全部配置文件把目標模塊和文件合并成一個惟一的Windows CE映像文件NK.BIN。圖1所示為NK.BIN的生成過程。
Makeimg生成NK.BIN的具體步驟:
①全并配置文件:所有的.BIB文件合并成CE.BIB。CE.BIB包含映像NK.BIN中的所有文件;所有.REG文件合并成REGINIT.INT;所有.DAT文件合并在修改配置文件時,一定要注意CE.BIB、REGINIT.INI、INITOBJ.DAT、INITDB.INI是中間文件,修改這些文件不能配置Windows CE。
②將REGINIT.INI文件壓縮成一個二進制文件DEFAULT.FDF。
③根據環境變量COUNTRY的設置,替換模塊中的資源,使Windows CE映像滿足特定語言的需要,最后生成二進制映像文件NK.BIN。
4 修改配置文件添加RTL8139網卡驅動
由于Windows CE具有完全不同于其它Windows操作系統的內核,在其它操作系統上運行的設備驅動程序不能在Windows CE上直接運行。原設備驅動程序代碼必須經過適當修改或者全部重寫以后才能在Windows CE系統上運行。Windows CE支持2種類型的設備驅動程序;本機設備驅動程序和流接口設備驅動程序。本機設備驅動程序通常與基于Windows CE的目標平臺有著緊密的連接,而且每種本機設備驅動程序有精確的和特殊的目標的,這部分驅動程序一般由原始設備制造商(OEM)提供。流接口設備驅動程序是在用戶一級的動態鏈接庫(DLL),用于驅動可安裝的外圍部件。RTL8139網卡驅動程序是流接口設備驅動程序。使用Platform Builder或者Embedded Visual C++ 3.0生成RTL8139網卡驅動程序RTL8139.DLL.將(_FLATRELEASEDIR)中,分別修改Platform.BIB和Platform.REG。
①向Platform.BIB文件中添加下列語句:
MEMORY
RTL8139 8090000 00010000 RESERVED
MODULES
Rtl8139.dll $(_FLARTELEASEDIR).dll NK SH
②向Platform.REG中添加下列語句:
[HKEY_LOCAL_MACHINE]
“DisplayName”=“Realtek RTL8139 based Fast
Ethernet Driver”
“Group”=“NDIS”
“ImagePath” = “rtl8139.dll”
[HKEY_LOCAL_MACHINE]
“Route” = “Rmulti_sz: TL81391”
[HKEY_LOCAL_MACHINE]
“DisplayName” = “Realtek RTL8139 based Fast Ethernet Driver”
“Group” = “NDIS”
“ImagePath” = “rtl8139.dll”
[HKEY_LOCAL_MACHINE]
“BusNumber”= dword:0
“BusType”=dword:5
“ScanMethod”=dword:0
“SharedInterrupt”= dword:1
“PhysicalAddressBase”=dword:001a0000
[HKEY_LOCAL_MACHINE]
“EnableDHCP”=dword:0
;MULTI_SZ類型
“DefaultGateway”=“”
;0代表廣播地址(或者255.255.255.255)
“UseZerBroadcast”=dword:0
;NULTI_SZ類型,IP地址
“IpAddress”=“202.2.4.77.16”
;MULTI_SZ類型,上面IP地址的子網掩碼
“Subnetmask”=“255.255255.0”
[HKEY_LOCAL_MACHINE]
“Bind”=multi_sz:“RTL81391”
③Makeimg生成NK.BIN
在命令提示窗口輸入Makeimg命令,生成新的Windows CE映像NK.BIN。下載NK.BIN到目標平臺,通過以太網電纜直接連接開發工作站網卡和目標平臺的RTL8139網卡。FRTL8139網卡的IP地址必須和開發工作站的IP地址在同一子網中,這樣,在開始工作站運行ping命令時才會有響應。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com