使用Platform Builder配置Windows CE操作系统
?
使用Platform Builder配置Windows CE操作系統(tǒng)
摘要:Windows CE操作系統(tǒng)是嵌入式系統(tǒng)的開發(fā)利器。Windows CE Platform Builder 3.0提供創(chuàng)建、裁剪和配置Windows CE的所有開發(fā)和調(diào)試工具。深刻理解和靈活運用Platform Builder的配置文件.REG、.BIB、.DAT、.DB是定制適合目標平臺的Windows CE操作系統(tǒng)的關(guān)鍵。本文詳細分析Platform Builder的配置文件,并以向Windows CE添加RTL8139網(wǎng)卡驅(qū)動程序為例,說明如何通過修改配置文件添加目標平臺的設(shè)備驅(qū)動程序。
??
關(guān)鍵詞:嵌入式系統(tǒng) Platform Builder Windows CE 驅(qū)動程序
引言
嵌入式系統(tǒng)是指操作系統(tǒng)的和功能軟件集成于計算機硬件系統(tǒng)之中,簡單地說就是系統(tǒng)的應(yīng)用軟件與系統(tǒng)的硬件一體化,類似于BIOS的工作方式。具有軟件代碼小、高度自動化、響應(yīng)速度快等特點。Windows CE是一個功能強大的開放的32位實時嵌入式操作系統(tǒng),適用于快速構(gòu)建新一代內(nèi)存少、體積小的智能設(shè)備,例如工業(yè)控制器、手持式設(shè)備、智能電話、機頂盒和零售點設(shè)備等。不僅如此,Windows CE也為開發(fā)智能移動設(shè)備提供了新一代可剪裁的嵌入式系統(tǒng)平臺。Windows CE支持各種處理器產(chǎn)品家庭,包括x86、Xscale、ARM、MIPS和SH等系列,因此它允許開發(fā)人員選擇最理想的硬件。微軟Windows CE Platform Builder 3.0用于創(chuàng)建、裁剪、定制Windows CE操作系統(tǒng)。Platform Builder為創(chuàng)建Windows CE提供許多配置文件和開發(fā)調(diào)試工具。由于Windows CE適合于要求實時的和具有特定用途的多任務(wù)體系,通常需要為目標平臺開發(fā)專用的硬件設(shè)備的設(shè)備驅(qū)動程序。只有向Winodws CE添加適當(dāng)?shù)脑O(shè)備驅(qū)動程序之后外圍設(shè)備才可以正常工作。以RTL8139網(wǎng)卡驅(qū)動程序為例,說明如何通過修改配置文件添加Windows CE的設(shè)備驅(qū)動程序。
1 建立配置Windows CE的軟硬件環(huán)境
配置和調(diào)試Windows CE需要1臺高性能開發(fā)工作站和1臺目標調(diào)試設(shè)備。Platform Builder 3.0運行在Windows 2000或者以上版本的高性能開發(fā)工作站上。Platform Builder提供了創(chuàng)建和調(diào)試Windows CE映射NK.BIN的集成開發(fā)環(huán)境,如向?qū)Ш凸ぞ邫?#xff0c;支持活動模板庫(ATL)、微軟基本類庫(MFC)和Visual Basic,為支持的處理器家庭提供編譯器、內(nèi)核調(diào)試器以及各種遠程調(diào)試工具。目標調(diào)試平臺可以是經(jīng)過適當(dāng)配置以后的普通PC機,也可以是嵌入式微處理器模塊。開發(fā)工作站通過以太網(wǎng)或者串、并行口與目標平臺連接,并將Windows CE操作系統(tǒng)映像文件NK.BIN下載到目標平臺。下載完成之后,Windows CE在目標平臺啟動。在開發(fā)工作站上,可以使用Platform Builder提供的調(diào)試工具查看Windows CE的運行情況。以太網(wǎng)和串、并行口這兩種連接類型的差別如表1所列。
表1 以太網(wǎng)和串、并行口連接之間的差別
以太網(wǎng)連接
串、并行口連接
下載速度較快
下載速度較慢
開發(fā)工作站需要以太網(wǎng)網(wǎng)卡,目標平臺需要NE2000兼容的調(diào)試以太網(wǎng)網(wǎng)卡
串行口、并行口
映像文件和調(diào)試工具都使用以太網(wǎng)
映像文件使用并行口下載,目標平臺的調(diào)試信息使用串行口傳送
2 Platform Builder 3.0提供的配置文件
配置文件包括4種文件類型:二進制映像生成文件.BIB、注冊表文件.REG、目錄和文件分配表文件.DAT、數(shù)據(jù)庫文件.DB。通過修改這些配置文件可以裁剪優(yōu)化Windows CE。用戶根據(jù)需要可以創(chuàng)建自己的配置文件,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分配一部分內(nèi)存空間給靜態(tài)數(shù)據(jù)文件。這部分主要包括字體文件(.TTF)、文本文件(.TXT)、位圖文件(.BMP)和聲音文件(.WAV)等。例如:
;Name Path Memory Type
;------ --------------------------------------- ----------- -----
Tahoma.ttf $(_FLATRELEASEDIR).ttf NK SHU
Name:在Windows CE系統(tǒng)中的文件名。
Path:文件在開發(fā)工作站中的位置。
Memory:文件所屬的內(nèi)存區(qū)。
Type:定義文件屬性。Windows CE中的文件有以下文件屬性:S為系統(tǒng)文件、H為隱含文件、U為非壓縮文件、R為壓縮資源文件、C為壓縮文件。1個文件可以同時具有幾種屬性。
上例說明NK內(nèi)存區(qū)包含開發(fā)工作站的$(_FLATRELEASEDIR).ttf文件。在Windows CE系統(tǒng)中,tahoma.ttf的文件屬性是系統(tǒng)隱含的非壓縮文件。
(2)MODULES部分
列出加載在內(nèi)存中的目標模塊和組件,包括所有的可執(zhí)行文件.EXE和動態(tài)鏈接庫.DLL。例如:
;Name Path Memory Type
;------- --------------------------------------- --------- ------
device.exe $(_FLATRELEASEDIR).exe NK SH
device模塊加載到內(nèi)存區(qū)。Windows CE系統(tǒng)中device.exe具有系統(tǒng)和隱含屬性。
(3)MEMEORY部分
把物理內(nèi)存分成2個部分:數(shù)據(jù)存儲區(qū)和程序存儲區(qū)。例如
;Name Start address size(bytes) Type
;------- -------------- ------------ --------------
NK 80200000 00600000 RAMIMAGE
RAM 80800000 00800000 RAM
在Windows CE系統(tǒng)中,內(nèi)存分成3種類型:RAM、RAMIMG和RESERVED。RAM規(guī)定內(nèi)存大小;RAMIMG規(guī)定ROM空間;RESERVED為保留的內(nèi)存空間,內(nèi)核不能使用這部分內(nèi)存,但是應(yīng)用程序可以訪問。上例說明NK的起始地址是80200000,它占有6MB內(nèi)存空間,作為ROM用于數(shù)據(jù)存儲區(qū)。RAM在80800000開始,占有8MB的內(nèi)存空間,用于程序存儲區(qū)。
(4)CONFIG部分
這部分不是必不可必的。在這部分進行一些屬性設(shè)置,如是否壓縮和ROM大小等。
2.2 注冊表文件.REG
注冊表文件建立操作系統(tǒng)映像的注冊表入口。注冊表是一個數(shù)據(jù),存儲了大量的配置信息,包括應(yīng)用程序信息、設(shè)備驅(qū)動程序的配置、系統(tǒng)配置信息、用戶參數(shù)和其它相關(guān)數(shù)據(jù)。當(dāng)目標平臺冷啟動時,Makeimg.exe使用.REG文件創(chuàng)建默認注冊表。Platform.REG配置與平臺有關(guān)的注冊表信息,如設(shè)備驅(qū)動程序入口。Project.REG設(shè)置與工程有關(guān)的注冊表格。注冊表文件的格式:
[HKEY_LOCAL_MACHINE]
“Launch10” = "shell.exe"
"Launch20" = "device.exe"
"Launch30" = "gwes.exe"
"Depend30" = "hex:14,00"
上述注冊表入口設(shè)置規(guī)定內(nèi)核在啟動時必須自動運行shell.EXE和device.exe模塊,gwes.EXE模塊必須在device.EXE正常啟動以后才能運行。
2.3 數(shù)據(jù)庫文件.DB
Windows CE提供內(nèi)置的輕量級數(shù)據(jù)庫管理系統(tǒng)。Windows CE的屬性數(shù)據(jù)庫由1張包含記錄的表組成,每個記錄包含許多不同的屬性,每個屬性有3種信息:標志屬性的ID號、類型和值。例如:
.Record:
Field:402001f:“{000214A0-0000-0000-C000-000000000046}”
Field:42020003:15
Field:42030003:2
End
屬性數(shù)據(jù)庫是一種平面結(jié)構(gòu),不能定義屬性數(shù)據(jù)庫之間的關(guān)系。使用Microsoft ActiveX Data Object for Windows CE(ADOCE)技術(shù)可以容量地訪問屬性數(shù)據(jù)庫,甚至可以使用SQL語句查詢信息。
2.4 目錄分配表文件.DAT
.DAT文件定義Windows CE映像NK.NIB黑認的目錄和文件結(jié)構(gòu)。注意,Winodws CE不支持像Windows 9x/2000一樣的盤符驅(qū)動器,而且沒有當(dāng)前目錄的概念。例如:
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必須出現(xiàn)在一個.BIB文件中,這樣,映像文件中會有MyFile.DOC。
3 設(shè)置環(huán)境變量、生成映像文件NK.BIN
3.1 設(shè)置環(huán)境變量
在所有配置文件中,都存在條件語句IF Enviroment Value……END IF。當(dāng)條件成立時,IF和END IF之間的信息包含在映像文件NK.BIN中;條件不成立時,則不包含相關(guān)模塊和文件。通過設(shè)置環(huán)境變量可以添加或者刪除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都是邏輯型環(huán)境變量。在PB中,可以使用2種方法設(shè)置環(huán)境變量。方法1:點擊Platform菜單的Setting…,打開平臺設(shè)置對話框,分別輸入Variable和Value設(shè)置環(huán)境變量。方法2:點擊Build菜單的Open Build Release Directory,打開命令提示窗口,在命令提示窗口中設(shè)置環(huán)境變量。在命令行中輸入SETIMGUSB=1,動態(tài)鏈接庫usbd.dll和usbhid.dll被包含到映像文件NK.BIN。uhci.dll和ohci.dll是否包含在NK.BIN中,取決于環(huán)境變量CEPC_UHCI和CEPC_OHCI的設(shè)置。如果SET IMGUSB=0,KN.BIN中不包含上述4個動態(tài)鏈接庫。
3.2 Makeimg.exe工具
生成映像文件NK.BIN是平臺創(chuàng)建過程的最后一步,也是配置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。
③根據(jù)環(huán)境變量COUNTRY的設(shè)置,替換模塊中的資源,使Windows CE映像滿足特定語言的需要,最后生成二進制映像文件NK.BIN。
4 修改配置文件添加RTL8139網(wǎng)卡驅(qū)動
由于Windows CE具有完全不同于其它Windows操作系統(tǒng)的內(nèi)核,在其它操作系統(tǒng)上運行的設(shè)備驅(qū)動程序不能在Windows CE上直接運行。原設(shè)備驅(qū)動程序代碼必須經(jīng)過適當(dāng)修改或者全部重寫以后才能在Windows CE系統(tǒng)上運行。Windows CE支持2種類型的設(shè)備驅(qū)動程序;本機設(shè)備驅(qū)動程序和流接口設(shè)備驅(qū)動程序。本機設(shè)備驅(qū)動程序通常與基于Windows CE的目標平臺有著緊密的連接,而且每種本機設(shè)備驅(qū)動程序有精確的和特殊的目標的,這部分驅(qū)動程序一般由原始設(shè)備制造商(OEM)提供。流接口設(shè)備驅(qū)動程序是在用戶一級的動態(tài)鏈接庫(DLL),用于驅(qū)動可安裝的外圍市長。RTL8139網(wǎng)卡驅(qū)動程序是流接口設(shè)備驅(qū)動程序。使用Platform Builder或者Embedded Visual C++ 3.0生成RTL8139網(wǎng)卡驅(qū)動程序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地址的子網(wǎng)掩碼
“Subnetmask”=“255.255255.0”
[HKEY_LOCAL_MACHINE]
“Bind”=multi_sz:“RTL81391”
③Makeimg生成NK.BIN
在命令提示窗口輸入Makeimg命令,生成新的Windows CE映像NK.BIN。下載NK.BIN到目標平臺,通過以太網(wǎng)電纜直接連接開發(fā)工作站網(wǎng)卡和目標平臺的RTL8139網(wǎng)卡。FRTL8139網(wǎng)卡的IP地址必須和開發(fā)工作站的IP地址在同一子網(wǎng)中,這樣,在開始工作站運行ping命令時才會有響應(yīng)。
5 總結(jié)
微軟Windows CE Platform Builder 3.0集成開發(fā)環(huán)境包含一系列開發(fā)工具、上下文相關(guān)菜單、工具欄和快捷鍵。Platform Builder創(chuàng)建、測試、裁剪Windows CE的平臺和組件。熟練使用Platform Builder提供的配置文件和開發(fā)調(diào)試工具可以快速定制適合目標平臺的Windows CE操作系統(tǒng),縮短平臺開發(fā)周期。適當(dāng)修改和設(shè)置Platform Builder的配置文件.BIB、.REG、.DAT、.DB可以裁剪和添加相關(guān)組件,正確配置各種設(shè)備驅(qū)動程序。Windows CE一般應(yīng)用于特定的嵌入式系統(tǒng)中,在許多情況下需要向目標平臺添加外部設(shè)備和設(shè)備驅(qū)動程序。本文通過修改Platform.BIB和Platform.REG配置文件在Windows CE中加入RTL8139網(wǎng)卡驅(qū)動程序。開發(fā)Windows CE的軟硬件環(huán)境建立之后,把工作站通過插入到目標平臺的PCI插槽中,開始工作站通過插在目標臺上的NE2000兼容網(wǎng)卡下載映像文件NK.BIN到目標平臺。Windows CE下常啟動以后,網(wǎng)絡(luò)電纜改成和RTL8139網(wǎng)卡連接。開發(fā)工作站和目標平臺之間使用PPP協(xié)議正常通信。
轉(zhuǎn)載于:https://www.cnblogs.com/xilentz/archive/2010/05/31/1748004.html
總結(jié)
以上是生活随笔為你收集整理的使用Platform Builder配置Windows CE操作系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WinCE中中断的处理过程(驱动开发人员
- 下一篇: Gearman 异步处理委派任务