使用Platform Builder配置Windows CE操作系統(tǒng)
2.1 二進(jìn)制映像生成文件.BIB
本文引用地址:http://butianyuan.cn/article/201609/303925.htm.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:文件在開(kāi)發(fā)工作站中的位置。
Memory:文件所屬的內(nèi)存區(qū)。
Type:定義文件屬性。Windows CE中的文件有以下文件屬性:S為系統(tǒng)文件、H為隱含文件、U為非壓縮文件、R為壓縮資源文件、C為壓縮文件。1個(gè)文件可以同時(shí)具有幾種屬性。
上例說(shuō)明NK內(nèi)存區(qū)包含開(kāi)發(fā)工作站的$(_FLATRELEASEDIR).ttf文件。在Windows CE系統(tǒng)中,tahoma.ttf的文件屬性是系統(tǒng)隱含的非壓縮文件。
(2)MODULES部分
列出加載在內(nèi)存中的目標(biāo)模塊和組件,包括所有的可執(zhí)行文件.EXE和動(dòng)態(tài)鏈接庫(kù).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種類(lèi)型:RAM、RAMIMG和RESERVED。RAM規(guī)定內(nèi)存大小;RAMIMG規(guī)定ROM空間;RESERVED為保留的內(nèi)存空間,內(nèi)核不能使用這部分內(nèi)存,但是應(yīng)用程序可以訪問(wèn)。上例說(shuō)明NK的起始地址是80200000,它占有6MB內(nèi)存空間,作為ROM用于數(shù)據(jù)存儲(chǔ)區(qū)。RAM在80800000開(kāi)始,占有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ù)庫(kù)文件.DB
Windows CE提供內(nèi)置的輕量級(jí)數(shù)據(jù)庫(kù)管理系統(tǒng)。Windows CE的屬性數(shù)據(jù)庫(kù)由1張包含記錄的表組成,每個(gè)記錄包含許多不同的屬性,每個(gè)屬性有3種信息:標(biāo)志屬性的ID號(hào)、類(lèi)型和值。例如:
.Record:
Field:402001f:“{000214A0-0000-0000-C000-000000000046}”
Field:42020003:15
Field:42030003:2
End
屬性數(shù)據(jù)庫(kù)是一種平面結(jié)構(gòu),不能定義屬性數(shù)據(jù)庫(kù)之間的關(guān)系。使用Microsoft ActiveX Data Object for Windows CE(ADOCE)技術(shù)可以容量地訪問(wèn)屬性數(shù)據(jù)庫(kù),甚至可以使用SQL語(yǔ)句查詢信息。
2.4 目錄分配表文件.DAT
.DAT文件定義Windows CE映像NK.NIB黑認(rèn)的目錄和文件結(jié)構(gòu)。注意,Winodws CE不支持像Windows 9x/2000一樣的盤(pán)符驅(qū)動(dòng)器,而且沒(méi)有當(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)境變量
在所有配置文件中,都存在條件語(yǔ)句IF Enviroment Value……END IF。當(dāng)條件成立時(shí),IF和END IF之間的信息包含在映像文件NK.BIN中;條件不成立時(shí),則不包含相關(guān)模塊和文件。通過(guò)設(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…,打開(kāi)平臺(tái)設(shè)置對(duì)話框,分別輸入Variable和Value設(shè)置環(huán)境變量。方法2:點(diǎn)擊Build菜單的Open Build Release Directory,打開(kāi)命令提示窗口,在命令提示窗口中設(shè)置環(huán)境變量。在命令行中輸入SETIMGUSB=1,動(dòng)態(tài)鏈接庫(kù)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)鏈接庫(kù)。
評(píng)論