Platform Builder配置文件详解——转载

说明:本文转载来自网络,复制到得时候也是转载,并且没有标明原创作者是谁,出处等等,所以原创作者看到后,请通知我一声,我会把注明作者和出处。

      Windows CE操作系统是嵌入式系统的开发利器。Windows CE Platform Builder 提供创建、裁剪和配置Windows CE的所有开发和调试工具。深刻理解和灵活运用Platform Builder的配置文件.REG、.BIB、.DAT、.DB是定制适合目标平台的Windows CE操作系统的关键。本文详细分析Platform Builder的配置文件,并以向Windows CE添加RTL8139网卡驱动程序为例,说明如何通过修改配置文件添加目标平台的设备驱动程序。

  关键词:嵌入式系统 Platform Builder Windows CE 驱动程序

 

  引言

  嵌入式系统是指操作系统的和功能软件集成于计算机硬件系统之中,简单地说就是系统的应用软件与系统的硬件一体化,类似于BIOS的工作方式。具有软件代码小、高度自动化、响应速度快等特点。Windows CE是一个功能强大的开放的32位实时嵌入式操作系统,适用于快速构建新一代内存少、体积小的智能设备,例如工业控制器、手持式设备、智能电话、机顶盒和零售点设备等。不仅如此,Windows CE也为开发智能移动设备提供了新一代可剪裁的嵌入式系统平台。Windows CE支持各种处理器产品家庭,包括x86、Xscale、ARM、MIPS和SH等系列,因此它允许开发人员选择最理想的硬件。微软Windows CE Platform Builder 用于创建、裁剪、定制Windows CE操作系统。Platform Builder为创建Windows CE提供许多配置文件和开发调试工具。由于Windows CE适合于要求实时的和具有特定用途的多任务体系,通常需要为目标平台开发专用的硬件设备的设备驱动程序。只有向Winodws CE添加适当的设备驱动程序之后外围设备才可以正常工作。以RTL8139网卡驱动程序为例,说明如何通过修改配置文件添加Windows CE的设备驱动程序。

  1 建立配置Windows CE的软硬件环境

  配置和调试Windows CE需要1台高性能开发工作站和1台目标调试设备。Platform Builder 运行在Windows 2000或者以上版本的高性能开发工作站上。Platform Builder提供了创建和调试Windows CE映射NK.BIN的集成开发环境,如向导和工具栏,支持活动模板库(ATL)、微软基本类库(MFC)和Visual Basic,为支持的处理器家庭提供编译器、内核调试器以及各种远程调试工具。目标调试平台可以是经过适当配置以后的普通PC机,也可以是嵌入式微处理器模块。开发工作站通过以太网或者串、并行口与目标平台连接,并将Windows CE操作系统映像文件NK.BIN下载到目标平台。下载完成之后,Windows CE在目标平台启动。在开发工作站上,可以使用Platform Builder提供的调试工具查看Windows CE的运行情况。以太网和串、并行口这两种连接类型的差别如表1所列。

  表1 以太网和串、并行口连接之间的差别

以太网连接串、并行口连接
下载速度较快下载速度较慢
开发工作站需要以太网网卡,目标平台需要NE2000兼容的调试以太网网卡串行口、并行口
映像文件和调试工具都使用以太网映像文件使用并行口下载,目标平台的调试信息使用串行口传送

  2 Platform Builder 提供的配置文件

  配置文件包括4种文件类型:二进制映像生成文件.BIB、注册表文件.REG、目录和文件分配表文件.DAT、数据库文件.DB。通过修改这些配置文件可以裁剪优化Windows CE。用户根据需要可以创建自己的配置文件,PB提供的主要配置文件如表2所列。

  表2 配置文件列表

.BIB文件.REG文件.DAT文件.DB文件
Common.bibCommon.regCommon.datCommon.db
Dcom.bibDcom.regServers.dat 
Msmq.bibMsmq.reg  
Platform.bibPlatform.regPlatform.datPlatform.db
Project.bibProject.regProject.dat 
Wceshellfe.bibWceshellfe.regWceshellfe.datWceshellfe.db——这些文件都和微软默认定制有关
Wceappsfe.bibWceappsfe.regWceappsfe.datWceappsfe.db——修改shell就要通过这些下手
Config.bibreg  

  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的生成过程。

  tu1

  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 集成开发环境包含一系列开发工具、上下文相关菜单、工具栏和快捷键。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协议正常通信。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值