使用Platform Builder配置Windows CE操作系统
?
使用Platform Builder配置Windows CE操作系統
摘要:Windows CE操作系統是嵌入式系統的開發利器。Windows CE Platform Builder 3.0提供創建、裁剪和配置Windows CE的所有開發和調試工具。深刻理解和靈活運用Platform Builder的配置文件.REG、.BIB、.DAT、.DB是定制適合目標平臺的Windows CE操作系統的關鍵。本文詳細分析Platform Builder的配置文件,并以向Windows CE添加RTL8139網卡驅動程序為例,說明如何通過修改配置文件添加目標平臺的設備驅動程序。
??
關鍵詞:嵌入式系統 Platform Builder Windows CE 驅動程序
引言
嵌入式系統是指操作系統的和功能軟件集成于計算機硬件系統之中,簡單地說就是系統的應用軟件與系統的硬件一體化,類似于BIOS的工作方式。具有軟件代碼小、高度自動化、響應速度快等特點。Windows CE是一個功能強大的開放的32位實時嵌入式操作系統,適用于快速構建新一代內存少、體積小的智能設備,例如工業控制器、手持式設備、智能電話、機頂盒和零售點設備等。不僅如此,Windows CE也為開發智能移動設備提供了新一代可剪裁的嵌入式系統平臺。Windows CE支持各種處理器產品家庭,包括x86、Xscale、ARM、MIPS和SH等系列,因此它允許開發人員選擇最理想的硬件。微軟Windows CE Platform Builder 3.0用于創建、裁剪、定制Windows CE操作系統。Platform Builder為創建Windows CE提供許多配置文件和開發調試工具。由于Windows CE適合于要求實時的和具有特定用途的多任務體系,通常需要為目標平臺開發專用的硬件設備的設備驅動程序。只有向Winodws CE添加適當的設備驅動程序之后外圍設備才可以正常工作。以RTL8139網卡驅動程序為例,說明如何通過修改配置文件添加Windows CE的設備驅動程序。
1 建立配置Windows CE的軟硬件環境
配置和調試Windows CE需要1臺高性能開發工作站和1臺目標調試設備。Platform Builder 3.0運行在Windows 2000或者以上版本的高性能開發工作站上。Platform Builder提供了創建和調試Windows CE映射NK.BIN的集成開發環境,如向導和工具欄,支持活動模板庫(ATL)、微軟基本類庫(MFC)和Visual Basic,為支持的處理器家庭提供編譯器、內核調試器以及各種遠程調試工具。目標調試平臺可以是經過適當配置以后的普通PC機,也可以是嵌入式微處理器模塊。開發工作站通過以太網或者串、并行口與目標平臺連接,并將Windows CE操作系統映像文件NK.BIN下載到目標平臺。下載完成之后,Windows CE在目標平臺啟動。在開發工作站上,可以使用Platform Builder提供的調試工具查看Windows CE的運行情況。以太網和串、并行口這兩種連接類型的差別如表1所列。
表1 以太網和串、并行口連接之間的差別
以太網連接
串、并行口連接
下載速度較快
下載速度較慢
開發工作站需要以太網網卡,目標平臺需要NE2000兼容的調試以太網網卡
串行口、并行口
映像文件和調試工具都使用以太網
映像文件使用并行口下載,目標平臺的調試信息使用串行口傳送
2 Platform Builder 3.0提供的配置文件
配置文件包括4種文件類型:二進制映像生成文件.BIB、注冊表文件.REG、目錄和文件分配表文件.DAT、數據庫文件.DB。通過修改這些配置文件可以裁剪優化Windows CE。用戶根據需要可以創建自己的配置文件,PB提供的主要配置文件如表2所列。
表2 配置文件列表
.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
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命令時才會有響應。
5 總結
微軟Windows CE Platform Builder 3.0集成開發環境包含一系列開發工具、上下文相關菜單、工具欄和快捷鍵。Platform Builder創建、測試、裁剪Windows CE的平臺和組件。熟練使用Platform Builder提供的配置文件和開發調試工具可以快速定制適合目標平臺的Windows CE操作系統,縮短平臺開發周期。適當修改和設置Platform Builder的配置文件.BIB、.REG、.DAT、.DB可以裁剪和添加相關組件,正確配置各種設備驅動程序。Windows CE一般應用于特定的嵌入式系統中,在許多情況下需要向目標平臺添加外部設備和設備驅動程序。本文通過修改Platform.BIB和Platform.REG配置文件在Windows CE中加入RTL8139網卡驅動程序。開發Windows CE的軟硬件環境建立之后,把工作站通過插入到目標平臺的PCI插槽中,開始工作站通過插在目標臺上的NE2000兼容網卡下載映像文件NK.BIN到目標平臺。Windows CE下常啟動以后,網絡電纜改成和RTL8139網卡連接。開發工作站和目標平臺之間使用PPP協議正常通信。
轉載于:https://www.cnblogs.com/xilentz/archive/2010/05/31/1748004.html
總結
以上是生活随笔為你收集整理的使用Platform Builder配置Windows CE操作系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WinCE中中断的处理过程(驱动开发人员
- 下一篇: Gearman 异步处理委派任务