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。