如何通过修改配置文件开发Windows CE软硬件环境

嵌入式系统是指操作系统的和功能软件集成于计算机硬件系统之中,简单地说就是系统的应用软件与系统的硬件一体化,类似于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的集成开发环境,如向导和工具栏,支持活动模板库(atl)、微软基本类库(mfc)和visual basic,为支持的处理器家庭提供编译器、内核调试器以及各种远程调试工具。目标调试平台可以是经过适当配置以后的普通pc机,也可以是嵌入式微处理器模块。开发工作站通过以太网或者串、并行口与目标平台连接,并将windows ce操作系统映像文件nk.bin下载到目标平台。下载完成之后,windows ce在目标平台启动。在开发工作站上,可以使用platform builder提供的调试工具查看windows ce的运行情况。以太网和串、并行口这两种连接类型的差别如表1所列。
表1 以太网和串、并行口连接之间的差别
2、 platform builder 3.0提供的配置文件
配置文件包括4种文件类型:二进制映像生成文件.bib、注册表文件.reg、目录和文件分配表文件.dat、数据库文件.db。通过修改这些配置文件可以裁剪优化windows ce。用户根据需要可以创建自己的配置文件,pb提供的主要配置文件如表2所列。
表2 配置文件列表
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协议正常通信。


RF-ADC后台校准原理及收敛时间测量
三星添加晶元光电为芯片供应商,主要用在Micro LED电视系列
凯恩股份进军电池业“落空”
无源器件在大功率条件下S参数的变化量
插混汽车和油混汽车在市场中谁更具有优势
如何通过修改配置文件开发Windows CE软硬件环境
控制柜现场卡塔一扣完成?
MAX6650和MAX6651风扇速度调节器在24V及48V
为什么要进行晶闸管的保护措施
作为民族企业,如何理性评价中兴制裁事件?
德州仪器AFE传感器技术助力汽车雷达系统探测道路的安全性
什么是磨床
中航智亮相2019全球无人机应用防控展 展示两款全新无人直升机
电阻应变式压力传感器工作原理
锐龙7 4800H性能表现优异 接近桌面级主流旗舰酷睿i9-9900HK
高级语言(HLL)标准扩展大大简化基于FPGA加速器的应用程序的开发
昆仑芯芯片产品重磅亮相2022 世界人工智能大会
工厂养殖池水质在线检测控制器起到什么作用
变频器主要的用途及变频器故障诊断与维修
变压器并列运行的条件及注意事项