當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀] 引言嵌入式系統(tǒng)是指操作系統(tǒng)的和功能軟件集成于計(jì)算機(jī)硬件系統(tǒng)之中,簡(jiǎn)單地說就是系統(tǒng)的應(yīng)用軟件與系統(tǒng)的硬件一體化,類似于BIOS的工作方式。具有軟件代碼小、高度自動(dòng)化、

 引言

嵌入式系統(tǒng)是指操作系統(tǒng)的和功能軟件集成于計(jì)算機(jī)硬件系統(tǒng)之中,簡(jiǎn)單地說就是系統(tǒng)的應(yīng)用軟件與系統(tǒng)的硬件一體化,類似于BIOS的工作方式。具有軟件代碼小、高度自動(dòng)化、響應(yīng)速度快等特點(diǎn)。Windows CE是一個(gè)功能強(qiáng)大的開放的32位實(shí)時(shí)嵌入式操作系統(tǒng),適用于快速構(gòu)建新一代內(nèi)存少、體積小的智能設(shè)備,例如工業(yè)控制器、手持式設(shè)備、智能電話、機(jī)頂盒和零售點(diǎn)設(shè)備等。不僅如此,Windows CE也為開發(fā)智能移動(dòng)設(shè)備提供了新一代可剪裁的嵌入式系統(tǒng)平臺(tái)。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適合于要求實(shí)時(shí)的和具有特定用途的多任務(wù)體系,通常需要為目標(biāo)平臺(tái)開發(fā)專用的硬件設(shè)備的設(shè)備驅(qū)動(dòng)程序。只有向Winodws CE添加適當(dāng)?shù)脑O(shè)備驅(qū)動(dòng)程序之后外圍設(shè)備才可以正常工作。以RTL8139網(wǎng)卡驅(qū)動(dòng)程序?yàn)槔?,說明如何通過修改配置文件添加Windows CE的設(shè)備驅(qū)動(dòng)程序。

1 建立配置Windows CE的軟硬件環(huán)境

配置和調(diào)試Windows CE需要1臺(tái)高性能開發(fā)工作站和1臺(tái)目標(biāo)調(diào)試設(shè)備。Platform Builder 3.0運(yùn)行在Windows 2000或者以上版本的高性能開發(fā)工作站上。Platform Builder提供了創(chuàng)建和調(diào)試Windows CE映射NK.BIN的集成開發(fā)環(huán)境,如向?qū)Ш凸ぞ邫?,支持活?dòng)模板庫(ATL)、微軟基本類庫(MFC)和Visual Basic,為支持的處理器家庭提供編譯器、內(nèi)核調(diào)試器以及各種遠(yuǎn)程調(diào)試工具。目標(biāo)調(diào)試平臺(tái)可以是經(jīng)過適當(dāng)配置以后的普通PC機(jī),也可以是嵌入式微處理器模塊。開發(fā)工作站通過以太網(wǎng)或者串、并行口與目標(biāo)平臺(tái)連接,并將Windows CE操作系統(tǒng)映像文件NK.BIN下載到目標(biāo)平臺(tái)。下載完成之后,Windows CE在目標(biāo)平臺(tái)啟動(dòng)。在開發(fā)工作站上,可以使用Platform Builder提供的調(diào)試工具查看Windows CE的運(yùn)行情況。以太網(wǎng)和串、并行口這兩種連接類型的差別如表1所列。

表1 以太網(wǎng)和串、并行口連接之間的差別

以太網(wǎng)連接 串、并行口連接
下載速度較快 下載速度較慢 
開發(fā)工作站需要以太網(wǎng)網(wǎng)卡,目標(biāo)平臺(tái)需要NE2000兼容的調(diào)試以太網(wǎng)網(wǎng)卡 串行口、并行口
映像文件和調(diào)試工具都使用以太網(wǎng) 映像文件使用并行口下載,目標(biāo)平臺(tái)的調(diào)試信息使用串行口傳送

2 Platform Builder 3.0提供的配置文件

配置文件包括4種文件類型:二進(jìn)制映像生成文件.BIB、注冊(cè)表文件.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 Script reg    

2.1 二進(jìn)制映像生成文件.BIB

.BIB文件是文本文件,標(biāo)識(shí)包含在Windows CE映像中的目標(biāo)模塊、組件和文件。一個(gè).BIB文件包含4個(gè)部分: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個(gè)文件可以同時(shí)具有幾種屬性。

上例說明NK內(nèi)存區(qū)包含開發(fā)工作站的$(_FLATRELEASEDIR).ttf文件。在Windows CE系統(tǒng)中,tahoma.ttf的文件屬性是系統(tǒng)隱含的非壓縮文件。

(2)MODULES部分

列出加載在內(nèi)存中的目標(biāo)模塊和組件,包括所有的可執(zhí)行文件.EXE和動(dòng)態(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個(gè)部分:數(shù)據(jù)存儲(chǔ)區(qū)和程序存儲(chǔ)區(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ù)存儲(chǔ)區(qū)。RAM在80800000開始,占有8MB的內(nèi)存空間,用于程序存儲(chǔ)區(qū)。

(4)CONFIG部分

這部分不是必不可必的。在這部分進(jìn)行一些屬性設(shè)置,如是否壓縮和ROM大小等。

2.2 注冊(cè)表文件.REG

注冊(cè)表文件建立操作系統(tǒng)映像的注冊(cè)表入口。注冊(cè)表是一個(gè)數(shù)據(jù),存儲(chǔ)了大量的配置信息,包括應(yīng)用程序信息、設(shè)備驅(qū)動(dòng)程序的配置、系統(tǒng)配置信息、用戶參數(shù)和其它相關(guān)數(shù)據(jù)。當(dāng)目標(biāo)平臺(tái)冷啟動(dòng)時(shí),Makeimg.exe使用.REG文件創(chuàng)建默認(rèn)注冊(cè)表。Platform.REG配置與平臺(tái)有關(guān)的注冊(cè)表信息,如設(shè)備驅(qū)動(dòng)程序入口。Project.REG設(shè)置與工程有關(guān)的注冊(cè)表格。注冊(cè)表文件的格式:

[HKEY_LOCAL_MACHINE]

“Launch10” = "shell.exe"

"Launch20" = "device.exe"

"Launch30" = "gwes.exe"

"Depend30" = "hex:14,00"

上述注冊(cè)表入口設(shè)置規(guī)定內(nèi)核在啟動(dòng)時(shí)必須自動(dòng)運(yùn)行shell.EXE和device.exe模塊,gwes.EXE模塊必須在device.EXE正常啟動(dòng)以后才能運(yùn)行。

2.3 數(shù)據(jù)庫文件.DB

Windows CE提供內(nèi)置的輕量級(jí)數(shù)據(jù)庫管理系統(tǒng)。Windows CE的屬性數(shù)據(jù)庫由1張包含記錄的表組成,每個(gè)記錄包含許多不同的屬性,每個(gè)屬性有3種信息:標(biāo)志屬性的ID號(hào)、類型和值。例如:

.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黑認(rèn)的目錄和文件結(jié)構(gòu)。注意,Winodws CE不支持像Windows 9x/2000一樣的盤符驅(qū)動(dòng)器,而且沒有當(dāng)前目錄的概念。例如:

root:-Directory("Program Files")

Directory("Program Files"):Directory("MY Work")

root:-Directory("My Documents")

Directory("My Documents"):-File("MyFile.doc")

生成2個(gè)根目錄:Program Files和MyDocuments。Program Files有1個(gè)子目錄:My Work。文件MyFile.DOC位于My Document目錄中。注意MyFile.DOC必須出現(xiàn)在一個(gè).BIB文件中,這樣,映像文件中會(huì)有MyFile.DOC。

3 設(shè)置環(huán)境變量、生成映像文件NK.BIN

3.1 設(shè)置環(huán)境變量

在所有配置文件中,都存在條件語句IF Enviroment Value……END IF。當(dāng)條件成立時(shí),IF和END IF之間的信息包含在映像文件NK.BIN中;條件不成立時(shí),則不包含相關(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:點(diǎn)擊Platform菜單的Setting…,打開平臺(tái)設(shè)置對(duì)話框,分別輸入Variable和Value設(shè)置環(huán)境變量。方法2:點(diǎn)擊Build菜單的Open Build Release Directory,打開命令提示窗口,在命令提示窗口中設(shè)置環(huán)境變量。在命令行中輸入SETIMGUSB=1,動(dòng)態(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個(gè)動(dòng)態(tài)鏈接庫。

3.2 Makeimg.exe工具

生成映像文件NK.BIN是平臺(tái)創(chuàng)建過程的最后一步,也是配置Windows CE的最終目標(biāo)。Makeimg.exe使用全部配置文件把目標(biāo)模塊和文件合并成一個(gè)惟一的Windows CE映像文件NK.BIN。圖1所示為NK.BIN的生成過程。

Makeimg生成NK.BIN的具體步驟:

①全并配置文件:所有的.BIB文件合并成CE.BIB。CE.BIB包含映像NK.BIN中的所有文件;所有.REG文件合并成REGINIT.INT;所有.DAT文件合并在修改配置文件時(shí),一定要注意CE.BIB、REGINIT.INI、INITOBJ.DAT、INITDB.INI是是間文件,修改這些文件不能配置Windows CE。

②將REGINIT.INI文件壓縮成一個(gè)二進(jìn)制文件DEFAULT.FDF。

③根據(jù)環(huán)境變量COUNTRY的設(shè)置,替換模塊中的資源,使Windows CE映像滿足特定語言的需要,最后生成二進(jìn)制映像文件NK.BIN。

4 修改配置文件添加RTL8139網(wǎng)卡驅(qū)動(dòng)

由于Windows CE具有完全不同于其它Windows操作系統(tǒng)的內(nèi)核,在其它操作系統(tǒng)上運(yùn)行的設(shè)備驅(qū)動(dòng)程序不能在Windows CE上直接運(yùn)行。原設(shè)備驅(qū)動(dòng)程序代碼必須經(jīng)過適當(dāng)修改或者全部重寫以后才能在Windows CE系統(tǒng)上運(yùn)行。Windows CE支持2種類型的設(shè)備驅(qū)動(dòng)程序;本機(jī)設(shè)備驅(qū)動(dòng)程序和流接口設(shè)備驅(qū)動(dòng)程序。本機(jī)設(shè)備驅(qū)動(dòng)程序通常與基于Windows CE的目標(biāo)平臺(tái)有著緊密的連接,而且每種本機(jī)設(shè)備驅(qū)動(dòng)程序有精確的和特殊的目標(biāo)的,這部分驅(qū)動(dòng)程序一般由原始設(shè)備制造商(OEM)提供。流接口設(shè)備驅(qū)動(dòng)程序是在用戶一級(jí)的動(dòng)態(tài)鏈接庫(DLL),用于驅(qū)動(dòng)可安裝的外圍市長(zhǎng)。RTL8139網(wǎng)卡驅(qū)動(dòng)程序是流接口設(shè)備驅(qū)動(dòng)程序。使用Platform Builder或者Embedded Visual C++ 3.0生成RTL8139網(wǎng)卡驅(qū)動(dòng)程序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到目標(biāo)平臺(tái),通過以太網(wǎng)電纜直接連接開發(fā)工作站網(wǎng)卡和目標(biāo)平臺(tái)的RTL8139網(wǎng)卡。FRTL8139網(wǎng)卡的IP地址必須和開發(fā)工作站的IP地址在同一子網(wǎng)中,這樣,在開始工作站運(yùn)行ping命令時(shí)才會(huì)有響應(yīng)。

5 總結(jié)

微軟Windows CE Platform Builder 3.0集成開發(fā)環(huán)境包含一系列開發(fā)工具、上下文相關(guān)菜單、工具欄和快捷鍵。Platform Builder創(chuàng)建、測(cè)試、裁剪Windows CE的平臺(tái)和組件。熟練使用Platform Builder提供的配置文件和開發(fā)調(diào)試工具可以快速定制適合目標(biāo)平臺(tái)的Windows CE操作系統(tǒng),縮短平臺(tái)開發(fā)周期。適當(dāng)修改和設(shè)置Platform Builder的配置文件.BIB、.REG、.DAT、.DB可以裁剪和添加相關(guān)組件,正確配置各種設(shè)備驅(qū)動(dòng)程序。Windows CE一般應(yīng)用于特定的嵌入式系統(tǒng)中,在許多情況下需要向目標(biāo)平臺(tái)添加外部設(shè)備和設(shè)備驅(qū)動(dòng)程序。本文通過修改Platform.BIB和Platform.REG配置文件在Windows CE中加入RTL8139網(wǎng)卡驅(qū)動(dòng)程序。開發(fā)Windows CE的軟硬件環(huán)境建立之后,把工作站通過插入到目標(biāo)平臺(tái)的PCI插槽中,開始工作站通過插在目標(biāo)臺(tái)上的NE2000兼容網(wǎng)卡下載映像文件NK.BIN到目標(biāo)平臺(tái)。Windows CE下常啟動(dòng)以后,網(wǎng)絡(luò)電纜改成和RTL8139網(wǎng)卡連接。開發(fā)工作站和目標(biāo)平臺(tái)之間使用PPP協(xié)議正常通信。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉