引言
近年来,Internet与网络的应用迅速普及,并向家庭领域不断扩展,使消费电子、计算机、通信一体化趋势日趋明显,嵌入式系统再度成为研究与应用的热点。可以预见,伴随着需求的增长,有着体积小、耗能低、应用灵活、功能强大、可靠性强等诸多优点的嵌入式系统定会有无法估计的应用前景。Intel XScale PXA263是一种十分先进的嵌入式处理器,采用XScale核心,频率为200~400MHz,加强了微处理器速度的管理,加快了多媒体处理的速度,并支持802.11b及蓝牙技术、USB接口。Intel的XScale技术将手持设备的功能推上了一个新的高度,其电源管理 能力提供了无与伦比的操作效率。配合Microsoft的嵌入式操作系统Windows CE.net,将进一步提升系统的整体性能。本文将通过一个具体的例子介绍一种基于Intel PXA263处理器和Windows CE.net操作系统的软件平台的设计方法。
1 硬件平台的构建
1.1 Intel PXA263处理器
Intel PXA263处理器是Intel公司最新推出的一款嵌入式微处理器。Intel PXA263处理器基于Intel多晶片产品(MCP)封装技术,也是第一套创新堆栈式处理器。它整合了32位的32MB Intel StrataFlash内存与含Intel Xscale技术的处理器,比其它分离(stand alone)型产品节省72%的空间,能够在体积更小的单系统封装内提供更强大的运算与内存功能。同时,能减少产品使用的组件数量,让制造商开发出新型与独特功能设计的产品,其中包括执行各种效能密集应用,例如,MPEG4影片解码、语音与手写识别及游戏等。以上这些特点使得Intel PXA263更加适合在体积和功耗要求较严的移动设备中使用。
1.2 硬件平台的设计
本智能移动信息终端采用Microsoft的Windows CE.net嵌入式操作系统,能够通过CCD摄像头实现图像的输入,也可以通过触摸屏实现输入,同时能够通过GPRS模块和另的终端以及主控设备实现远程的数据传输和通信。根据Intel PXA263的特点和应用要求,首先开发一个硬件平台(以下称WindRain板),其具体的结构框图如图1所示。该硬件平台主要由微处理器Intel PXA263、外部RAM、CCD接口、GPRS模块、LCD、USB接口、串口等组成,同时可以通过SD卡和CF卡实现外部存储器的扩展。
2 Windows CE.net操作系统的移植
2.1 Windows CE.net是Microsoft推出的WindowsCE3.0后继产品,是一个紧凑、完整和可扩展的嵌入式操作系统。该系统具有完事的操作系统特性集包和端对端开发环境,是一个多线程、多任务、确定性的实时完全抢先式优先级的操作系统,特别适合于有限资源的硬件平台。WindowsCE.net支持超过1400条的通道Microsoft Win32 API和其它的编程接口,包括组件对象模型(COM),Microsoft基本类库(MFC),Microsoft Activex控制,Microsoft活动模板库(ATL)等,其模块化的设计方式使得系统开发人员和应用开发人员能够为多种多样的产品来定制它。
Platform Builder 4.2专门为开发基于Windows CE.net操作系统的可定制平台而设计的集成开发平台,包括集成开发环境、平台生成器、SDK导出器、调试器、远程实用工具和仿真器等。它能使用户方便地设计和调试一个基于Windows CE.net的平台。
2.2 Windows CE.net的一般开发流程
嵌入式Windows CE.net的一般开发流程包括操作系统的定制,应用程序的开发和产品生成等步骤,现分述如下。
(1)操作系统的定制
主要包括定制板级支持包BSP(包括Bootloader的编写)、定制系统模块、定制原始设备商适配层(OAL)及设备驱动(driver)等步骤。完成操作系统的定制以后,可以通过Platform Builder 4.2编译生成NK.bin或者NK.Nb0文件。至此,WindowCE.net的内核就定制完成了,然后就可以开发自己的应用程序。
(2)应用程序的开发
主要包括安装SDK和联机测试建立开发环境、开发中间模块、开发应用程序等步骤,最后形成exe文件。
(3)产品的生成
产品可以通过两种形式发布:应用程序(AP)与操作系统(NK.bin)分开发布或者是应用程序(AP)集成进程系统(NK.bin)发布,然后下载到硬件平台的Flash中脱机运行。其流程可以用图2表示。
3 基于WindRain硬件平台的Windows CE.net操作系统开发流程
3.1 开发基于WindRain板的BSP
BSP(Board Support Package)的开发主要包括Bootloader的开发、OAL(OEM Adaptive Layer)的开发、本地驱动程序的开发及一冶文件配置等。
3.1.1 Bootloader的开发
Bootloader主要是管理目标平台的启动过程,包括初始化硬件设备,下载操作系统的映像文件等。有了Bootloader,用户可以快速下载一个操作系统并映像到硬件平台上运行。Bootloader的开发是BSP开发的第一步,也是关键的一步。只有得到一个稳定工作的Loader程序,才能够更进一步开发WinCE的BSP,直到最后整个系统的成功。
具体步骤如下所述。
运行Platform Builder 4.2。选择Platform-BSP Wizard,从Intel DBPXA240 DEV Platform,ARMV4I克隆一个新的BSP,命名为MyPxaPlat。完成后,从资源管理器可以查看到在%_winceroot%(笔者机器上为D:/wince420)路径下面的Platform中新增了一个目录MyPxaPlat。根据硬件平台的特点,修改%_winceroot%下的源泉文件fwxsc1.s、main.c、Flash.c及Edeviceinit.c等,使其符合自己的硬件平台。为了调试方便,通常在函数OEMPlatformInit中加入一些自定义命令的处理,这样便可以通过串口接收命令完成一些相应的功能。进入DOS命令行提示符,分别cd_winceroot=D:,cd%_winceroot%,wince ARMV4IHLBASE MYPXAPLAT,完成命令行解释器的设定,然后运行sysgen,定位%_winceroot%,输入命令build-c,romimage boot.bib,在%_winceroot%I路径下可以看到Eboot.exe、Eboot.bin、Eboot.nb0等文件。通过JTAG向Flash中写入Eboot.nb0文件,上电运行,就可以从超级终端中看到一些启动和调试信息。
3.1.2 0AL的开发
OAL(OEM Adaptive Layer)即设备商适配层,是指位于Windows CE内核和目标硬件平台之间的一个代码层。开发OAL的目是是为了使Windows CE.net内核和目标硬件之间实现通信,包括处理中断、定时器等一些代码。
图2
OAL的实现也是在fwxsc1.s、main.c、Flash.c、Edeviceinit.c等文件中,根据需要修改相应代码,并在此基础上通过Build工具生成Buildexe目录,内核执行镜像Wernkitl.exe以及CEDDK.dll文件等。
3.1.3 驱动程序的开发
Device Drivers(驱动程序)是指能够管理虚拟或者物理设备、协议、服务等的一段软件模块,操作系统通过驱动程序和硬件直接打交道。
设备驱动设计的具体步骤是通过Platform Builder创建一个新的平台,然后根据硬件平台的需要插入和移除驱动,需要修改的文件有Platform.bib、Platform.reg及驱动程序源代码等,下面以显示驱动为例说明具体的方法。
根据自己的硬件修改相关的源代码。
在platform.bib中插入DLL。
ddi.dll $(_FLATRELEASEDIR)video.dll NK SH在platform.reg中检查屏幕的Size和Bpp。
DisplayType"="LTM04C380K"
"CxScreen"=dwork:280
"CyScreen"=dword:1E0
"Bpp"=dword:10
定位目录D:_LCD,通过build工具生在sa2voideo.dll文件。
调试驱动文件。其它的设备驱动都可以仿照上述思路进行开发。
3.1.4 平台文件的配置
平台配置文件包括源代码配置文件和操作系统镜像配置文件。源代码配置文件主要是告诉Build工具需要用到的路径、C或Visual C++的源文件以及生成什么类型的二进制文件等,包括Dirs文件、Sources文件和Makefile文件等。操作系统镜像配置文件则主要用于给Makeimag工具生成操作系统镜像,包括.bib、.reg、.dat、.db等文件。
由于BSP是通过克隆生成的,所以源代码配置文件可以不做什么修改,只需根据需要,对镜像配置文件做相应的修改就行了。
3.2 在Platform Builder中配置内核并编译映像
具体步骤是打开Platform Builder,通过Manage Catalog Features调入上面生成的BSP(即.cec文件),运行NewPlatform Wizard生成一个新的Project,通过Build菜单,编译便可得到Windows CE.net映像文件NK.nb0和NK.bin。
3.3 导出平台SDK并编写应用程序
编译完成后,通过project菜单中的Export Wizard导出一个平台SDK,供在Embedded Visual C++或者Visual Studio.net中开发上层应用软件使用。
3.4 下载映像并脱机运行
通过CE网卡下载Windows CE.net的映像文件到Flash中,脱机按复位键,屏幕上显示Windows CE.net的启动画面,说明Windows CE.net已成功运行。开发的上层应用软件则可以通过PC机上的ActiveSyn同步软件下载到Flash中。
至此,基于Windows CE.net的智能信息终端的开发就已完成。通过开发过程可以看出,Microsoft公司提供的Windows CE.net操作系统及其开发工具,给我们提供了极大方便,大大缩短了产品研发的时间。
结语
本文介绍的基于Winodws CE.net的智能移动信息终端具有功能强、性能稳定、功耗小等特点,适用于当前的移动高端信息产品,应用前景较好。目前,本文所设计的系统已成功的应用于军警用移动信息终端中。