摘要:介绍了Microsoft公司最近推出的嵌入式实时操作系统WindowsCE.NET的功能模块和新增特性。该系统能够根据硬件设计的需要,定制出相应平台并能兼容市场上各类Win32软件,从而加速了用户的开发过程。同时还对WindowsCE.NET和Windows XP embedded两者的性能进行了简单比较,为开发者选用适当的嵌入式操作系统提供了一定的参考。最后阐述了构建基于CE.NET的嵌入式平台的过程,并简要说明了如何在构建的平台上开发嵌入式应用程序。
实时嵌入式操作系统的应用日益广泛。作为新一代嵌入式系统平台,Microsoft Windows CE得到了越来越广泛的应用。Windows CE.NET 4.2是目前Windows CE操作系统中的最新版本,它为基于Windows CE的嵌入式系统的开发提供了更加强大的工具,加速了系统的开发过程,具有广泛的应用前景。
Windows CE.NET操作系统与其它嵌入式操作系统类似,具有模块化的组织结构。这些模块可能是独立的,也可能有一些依赖关系。每个模块提供特定的系统功能,大的功能模块又可以细分成为几个组件。这种组件式结构能使CE.NET系统变的非常紧凑,仅需使用很少的硬件资源就可运行。最主要的系统模块有5个,它们是:
a 高效能:提供最好的网络(无线和有线)应用平台。
b 包容力:支持广泛的网络类型和选项。
c 易使用:通过系统提供的API,用户可以容易地开发出各种网络应用。
d 可拆卸:这是整个网络系统构架的特征,系统可以拆成很多独立的部分,应用系统可以根据需要选择其中一部分,这样可以降低系统开销,使系统更加精简。
以上介绍的5个模块提供了最主要的操作系统功能。除此之外,Windows CE.NET系统还有一些其它模块,包括OAL模块、驱动程序模块、Win32系统服务模块等。在最终的应用系统中,这些功能不一定都会被使用,系统开发者可以根据具体的硬件要求,选择必需的模块或组件,定制出合适的操作系统,而不必为其它不需要的硬件或功能付出额外的代价。CE.NET支持目前市场上绝大多数硬件设备及接口标准,从而保证最大灵活性和系统效率,能够适应广泛的用户系统的要求。
在众多广泛应用的嵌入式操作系统产品中,除了近几年异军突起的Microsoft Windows CE系列产品外,排在前列的不外乎是Wind River公司的Vxworks,Green Hills Software公司嵌入式产品,嵌入式Linux等。可能这些系统在实时性或其它方面有自身的优势,但它们不能兼容市场上各类Win32软件,故可利用的资源不多。加之其开发工具价格昂贵,详细的技术及开发文档也很难得到,因而开发基于这些操作系统的工业控制系统难度大,进入市场慢。从这点上讲,这类操作系统也不适合作为快速开发工业控制系统的软件平台。
2.1 Windows CE.NET和Windows XP embedded的比较
在Microsoft公司的嵌入式操作系统的家族中有2个成员,即Windows XP embedded和Windows CE.NET,2个成员的差异主要表现在以下4个方面:
从比较中可以看出以上两种嵌入式软件各有特点。另外,两种系统所支持的目标设备也有所不同,开发者可以根据自己的工程要求及相应的硬件设备来选择适当的开发平台。
2.2 Windows CE.NE的新增特性
相比于以前的Windows CE版本,CE.NET在网络通信、内核服务、多媒体和Web浏览等许多部分都有了进一步改善和加强。下面对其主要新增特性加以简单的说明。
1)进程管理。在进程管理方面Windows CE.NET做了很大优化:
2)网络通信。随着Internet的发展,网络可以说是无所不在,很多嵌人式系统都要与Internet或者其它网络或设备相连,WindowsCE.NET提供了强大的通信功能,主要表现在:
3)内核服务。
3.1 平台定制工具-PlatformBuilder
把Windows CE.NET移植到新硬件平台由平台构造器(Platform Builder)完成。平台构造器的版本通常与Windows CE.NET的版本相联系。Microsoft公司的PlatformBuilder 4.2是一个定制的基于Windows CE.NET 4.2操作系统的嵌入式平台的集成开发环境(IDE)。它包括了基本的文件编译能力、多目标编译调试工具包、特性编辑器、软件开发工具包(Software Development Kit,SDK)导出工具、向导工具以及用于做测试和性能分析等工作的多个工具包。
一个平台主要由操作系统映像(OS Image)和板卡支持包(BSP)两部分组成。在Windows CE.NET 4.2中,用户可以有三种不同的目标平台可供选择,分别是:基于CEPC的平台、基于仿真器的平台和基于National Geode的平台。一般基于CEPC的平台是用户的要求的嵌入式操作系统的目标平台,可以用来运行应用程序,满足实际工程需要。基于仿真器的平台能够使用户直接在PC机上仿真程序,并验证结果无误后再把程序下装到目标机,便基本可以在目标机运行。用户在进行平台定制时可以选择其中一种或多种。
3.2 创建基于CEPC的平台
定制一个基于Windows CE.NET的平台涉及到组件的添加或删除。CEPC的BSP中包含设备驱动程序和定制硬件缺省的组件列表。用户可以根据工程要求、硬件设备以及系统资源来决定组件的取舍。
平台定制过程可以按照应用向导逐步实现,其一般过程描述如下:
a.设置系统平台;
b.建立操作系统映像;
c.为CEPC制作一张启动盘;
d.设置和CEPC的连接,并下装操作系统映像到CEPC;
e.导出最终的SDK,将该SDK和embedded Visual C++(EVC)连接后,用户便可以开发基于所建平台的应用程序;
f.调试目标平台。
一般来讲,按照应用向导,便可方便地定制用户的系统平台,但是一些细节问题很容易被忽视,鉴于笔者经验主要有以下几点需要注意:
set NET_IRQ=0
set NET_IOBASE=0
set NET_IP="CEPC所处局域网的IP号"
重新启动CEPC(目标机),目标设备名便会自动出现在新设备框内,选中新设备,才能使操作系统映像真正下装到CEPC。下装时间与所定平台组件的多少有关。一般为1~ 3分钟。
4.1 应用程序开发环境
像标准的Windows操作系统一样,Windows CE.NET采用的是事件驱动的编程模型。Embedded Visual C++4.0是Windows CE.NET所包含的强有力的应用程序开发工具。若要开发基于Windows CE.NET 4.2的应用程序,Embedded Visual C++4.0需要附加Service Pack 2。Embedded VisualC++ 4.0具有与Visual C++基本相同的特性,包括对MFC、ATL以及COMA/DCOM 的支持、应用程序向导、编译调试等多种功能。不过Windows CE.NET只是实现了Win32 API函数的一个子集,且对某些函数参数类型的要求也比普通Visual C++苛刻。
4.2 应用程序的开发
Windows CE.NET程序的设计与普通的C++的设计流程相似,但又有其自身的特点,下面就此进行说明。应用程序设计步骤如下:
(1)启动Embedded Visual C++ 4.0,选择File菜单,然后选择New project项,创建一个应用程序的工程。这里值得需要注意的是,开发一个Windows CE的应用程序不一定提供一个远端设备。
(2)选择项目的类型。Windows CE支持的类型有MFC,ATL,应用程序向导,动态连接库(DLL),静态连接库。
(3)利用Windows CE API和平台所支持的C运行库(C Runtime Library)来编写应用程序。
(4)编译和建立应用程序。系统提供了一个关于项目的缺省设置,这些信息将控制程序的调试及运行方式。
4.3 应用程序的调试
集成开发环境具有多种调试工具,如:扩展调试接口、模拟器、遥控工具、平台管理器等。嵌入式应用程序的调试可以由以下两步实现:
(1)在模拟环境下调试和执行应用程序,这是在开发平台上所进行的最后步骤。具体过程如下:
a.在IDE工具栏中,选择目标平台的仿真器;
b.通过Build/Rebuild all编译应用程序,编译无误后,便会自动连接到仿真器程序,此时仿真器窗口将会显示在开发器的窗口内;
c.在仿真器窗口内双击“我的电脑”;
d.双击当前开发的应用程序图标,便可运行该程序。
(2)应用程序的执行和远程调试。当硬件平台和基本操作系统环境建造完成后,可以通过将应用程序下载到设备上,然后在本机上利用远程工具对远程对象上的项目进行调试,直到程序可以正确运行为止。至此,便完成了应用程序开发和调试的全部过程。
Windows CE.NET作为一种嵌入式实时操作系统,既具有嵌入式系统所要求的实时性、内存小等特性,又具有Windows 系统的许多共性。同时Embedded Visual C++给嵌入式系统应用程序的开发提供了极大的方便。因此,利用Windows CE.NET开发嵌入式系统或装置不仅可以获得最好的性能,而且可以缩短开发周期和降低技术风险。在嵌入式技术飞速发展的今天,Windows CE.NET必将有广泛的应用前景。