使用Platform Builder配置Windows CE作業系統貼21ic)

來源:互聯網
上載者:User
使用Platform Builder配置Windows CE作業系統

?http://www.21ic.com/info/images/dpj/200210/2.htm??

引言

嵌入式系統是指作業系統的和功能軟體整合於電腦硬體系統之中,簡單地說就是系統的應用軟體與系統的硬體一體化,類似於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的整合式開發環境,如嚮導和工具列,支援Active Template Library(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 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命令時才會有響應。

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協議正常通訊

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.