首页 > 嵌入式软件 > WinCE

 引言

本文引用地址: http://embed.21ic.com/software/wince/201409/33366.html

嵌入式系统是指操作系统的和功能软件集成于计算机硬件系统之中,简单地说就是系统的应用软件与系统的硬件一体化,类似于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 以太网和串、并行口连接之间的差别

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

2 Platform Builder 3.0提供的配置文件

配置文件包括4种文件类型:二进制映像生成文件.BIB、注册表文件.REG、目录和文件分配表文件.DAT、数据库文件.DB。通过修改这些配置文件可以裁剪优化Windows CE。用户根据需要可以创建自己的配置文件,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 二进制映像生成文件.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协议正常通信。

换一批

延伸阅读

[行业资讯] 齐聚深圳、嵌入式专家研讨人工智能时代发展机遇

齐聚深圳、嵌入式专家研讨人工智能时代发展机遇

近日,嵌入式系统联谊会第23次主题讨论会就这些问题,邀请业内知名专家和学者做了深入的探讨!本次会议由嵌入式系统联谊会、深圳北航新兴产业技术研究院主办,深圳北航物联网研究院、物联网咖啡承办,北京航空航天大学出版社、泰智会共同协办。主题为”人工......

关键字:嵌入式 单片机 人工智能 嵌入式系统

[行业资讯] 晶心科技再创里程碑 累积授权合约数突破200份

晶心科技再创里程碑 累积授权合约数突破200份

晶心的销售市场涵盖臺湾、美国、日本、韩国、大陆、欧洲等地,代表晶心科技的产品与技术获得全球客户的肯定。 ......

关键字:晶心科技 IPO 嵌入式系统

[行业资讯] 物联网操作系统现状与发展前景研讨会

物联网操作系统现状与发展前景研讨会

操作系统是物联网时代的战略制高点,今天PC和手机时代的操作系统霸主未必能在物联网时代延续霸业。操作系统产业的规律是,当垄断已经形成,后来者就很难颠覆,只有等待下一次产业浪潮。如今,一个全新的、充满想象空间的操作系统市场机会正在开启。 ......

关键字:物联网 嵌入式系统 研讨会

[行业资讯] 嵌入式系统的创新与创业,要从实处做起!

嵌入式系统的创新与创业,要从实处做起!

21ic讯 “大众创业、万众创新”已经成为社会各界的基本共识。从全球来看,现代电子信息技术在与社会的互动发展中,已经用自身的成就赢得了“科技革命的牵引......

关键字:嵌入式系统

[行业资讯] 嵌入式系统联谊会12月主题讨论会议程(总第17次)

嵌入式系统联谊会12月主题讨论会议程(总第17次)

最近两年集成电路产业发生了许多变化,呈现出以下三个特点:第一,并购频繁。Intel斥资167亿美元并购Altera,Avago 耗费370亿美元并购Broadcom,NXP花费 118亿收购了飞思卡......

关键字:嵌入式系统 联谊会

[真心话] 写给跟我一样混的不好的电子工程师们的一封信

写给跟我一样混的不好的电子工程师们的一封信

出来混两年了,真是混的一年不如一年,貌似正好赶上经济危机,工作不好找啊勉强混个生活费而已,倒霉的人必然是因为做了倒霉的事,不能太多的怪社会,貌似自我检讨下也是必需的!......

关键字:电子工程师

[真心话] 一个实例简单明了告诉你为什么要用RTOS

一个实例简单明了告诉你为什么要用RTOS

对于搞单片机的特别用8051系列工程师来说,谈到单片机的RTOS,很多时候会问一句:“为什么要用RTOS?单片机就这一点资源,使用RTOS能保证效率吗?”......

关键字:单片机 RTOS

[真心话] 神吐槽:高级硬件工程师需不需要懂基本电路?

神吐槽:高级硬件工程师需不需要懂基本电路?

那么请大家说说, 高级硬件工程师需不需要懂三极管电路? 难道拿着参考设计照猫画虎, 了解一些行情, 熟悉一些方案公司(出了事找方案公司来解决), 就算高工了?......

关键字:高级硬件工程师 基本电路
条评论

我 要 评 论

网友评论

大家都爱看

  • 扇出型晶圆级封装的优势和挑战!

    我们有能力创造一些能保持前代性能并且更好更小的电子设备,例如今天的可穿戴设备、智能手机或平板电脑,这是由于很多因素超过摩尔定律而快速发展,从而能够从底层的嵌入组件发展到今天把它们封…

    2018-03-29
  • Xilinx推出革命性的新型自适应计算产品

    自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX)),近日宣布推出一款超越FPGA功能的突破性新型产品,名为ACAP(Adaptive Compute Acceleration Platform,自适应计算加速…

    2018-03-20
  • 赛普拉斯为树莓派3 B+ IoT单板计算机提供强大稳定的无

    先进嵌入式系统解决方案的领导者赛普拉斯(纳斯达克代码:CY)近日宣布其Wi-Fi®和蓝牙®combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3Model B+)IoT单板计算机提供强大稳定的无线连接…

    2018-03-20
  • 观看直播领红包,SEED-A10加速卡助力人工智能

    随着云服务器、云计算的发展,大家对硬件加速的需求越来越多,但是随着设备功耗的上升、性能需求越来越高,常规加速设备以及开始不能满足需求,因此FPGA逐渐在硬件加速中找到了自己的位置,而艾…

    2018-03-19
  • 特朗普:博通不得以任何形式收购高通

    白宫周一(3月12日)晚发出声明,川普(特朗普)总统出于“国家安全”考量、禁止新加坡博通公司(Broadcom)收购美国高通公司(Qualcomm)。

    2018-03-14