基于Intel PXA270的WinCE *** 作系统移植

基于Intel PXA270的WinCE *** 作系统移植,第1张

基于Intel PXA270WinCE *** 作系统移植

随着科学技术进步和3G时代的到来,高性能PDA产品作为一种电子消费品越来越受青睐。作为这些高性能的PDA产品核心的嵌入式实时 *** 作系统是开发嵌入式应用的关键环节。向来以界面友好,易 *** 作性,易开发性为卖点的Windows CE.net嵌入式 *** 作系统得到了广泛的使用。然而,WindowsCE在不同CPU,不同硬件环境下的移植成为了限制其进一步发展的障碍。本文利用PlatformBuilder工具并以EEliod EvluaTIon开发板为对象,介绍了基于Intel PXA270WindowsCE的移植方法和内容。并给出了在此 *** 作系统成功开发的应用程序的运行结果。

1.系统硬件平台



2.Windows CE.net嵌入式 *** 作系统

Windows C++E.net 是为各种嵌入式系统和产品设计的一种压缩的、高效的、可升级的 *** 作系统。在 Windows CE.net 产品的开发中,有两个重要的方面,一个是内核定制,一个是应用程序的开发,微软在这两个方面都提供了非常好的开发工具,这就是内核定制工具 Platform Builder 和应用程序开发工具 Embedded Visual C++。Platform Builder 是基于 Windows CE.net平台下嵌入式 *** 作系统定制的集成开发环境。它提供了所有进行设计、创建、编译、测试和调试 Windows CE.net *** 作系统平台的工具。同时,还可利用 Platform Builder 来进行驱动程序开发和应用程序项目的开发等。由于嵌入式系统资源有限,C++编译器效率高、性能好,Embedded Visual C++(EVC)便成了其应用程序最广泛的开发工具。

3 *** 作系统移植

Windows CE.net并不是一个通用的安装版 *** 作系统,在形形色色的嵌入式硬件设备世界里,一款CE系统通常只会针对某一种硬件平台生成。所以,必须根据自己的硬件平台和应用场合定制CE。 *** 作系统移植步骤为:1)对 *** 作系统进行裁减,配置各个组件并且修改相关的配置文件;2)开发目标设备系统上的设备驱动程序,建立定制的CE *** 作系统映像文件;3)将目标文件下载到目标设备上进行调试;4)定制 *** 作系统内核后,导出平台SDK,供在Embedded Visual C++中开发上层应用软件。

3.1 BootLoader的移植

BootLoader是一段单独的程序代码,它存放于目标平台的非易失性存储介质中,如ROM或Flash。在开发CE的过程中,它主要用于启动硬件和下载nk.bin到目标板上,并有一定的监控作用

由于BootLoader涉及到基本的硬件 *** 作,如CPU的结构、指令等,同时又涉及到以太网下载协议(TFTP,当然也可能通过串口)和映像文件格式。因此从零实现的话,会需要相当长的过程。好在微软为每种类型的CPU都提供了某种标准开发板的BootLoader例程,因此通常的做法是:从这些例程中寻找与硬件平台最接近的作为标本程序,然后再从自己的硬件平台上入手做相应的改动。一些新的评估板可能会由第三方的厂商来提供Bootloader。如果硬件平台是从这样的基板设计而来的话,那么最好去寻求这些厂商获取Bootloader来移植,以减少工作量。本文移植使用的就是PXA270 Bootloader。

3.2驱动程序的开发

与其他 *** 作系统一样,Windows CE.net也提供了驱动软件,这些软件的目的是驱动内部和外围的硬件设备,或者为他们提供接口。驱动程序将 *** 作系统和设备连接起来,使得 *** 作系统能够识别设备并为应用程序提供设备服务。目前基于 Windows CE.net的两种模型是本机设备驱动程序和流接口驱动程序。

本机设备驱动适于集成到 Windows CE.net平台的设备。通用 LED 驱动和电源驱动就是这样的例子。微软提供了定制接口的方式来支持内部设备驱动程序,绝大多数的开发人员不需要编写本机设备驱动程序。

另外一种驱动模型是具有定制接口的流接口驱动程序,它是一般类型的设备驱动程序。流接口驱动程序表现为用户一级的动态链接库 DLL,用来实现一组固定的函数称为流接口函数,这使得应用程序可通过文件系统访问这些驱动程序。该部分实例参见参考文献4,这里不再详述。

3.3 *** 作系统配置、编译和下载

针对开发中使用的开发平台和应用需求,下面我们使用Windows CE.net *** 作系统移植开发工具Platform Builder来完成 *** 作系统的配置编译以及下载工作。

3.3.1 配置Platform Builder

在完成BSP或者驱动程序开发后,就可以用CEC Editor来编辑一个CEC文件,成功后就可以把此文件加载到PB IDE中。其中的原理就是PB用CEC文件来增加或者删除某个功能单元,PB会解释CEC文件中的数据格式。CEC文件编辑如图1所示。加载CEC文件到PB中如图2所示。

基于Intel PXA270的WinCE *** 作系统移植,第2张

图1 编辑CEC文件实例                         

基于Intel PXA270的WinCE *** 作系统移植,第3张

图2 加载CEC文件实例

3.3.2 配置 *** 作系统

选择File->New Platform来开始一个“New Platform Wizard”,按照Platform Wizard 完成平台的基本配置,在第三步选择BSP包时,选择 EMDOOR SYSTEMS XSBASE270:ARMV4I。因为我们开发用到的是亿道公司提供的BSP包。在第四步选择Internet ApplicaTIon ,第五步选择组件时我们要选取 .net CF1.0支持,这是因为在使用.Net CF2.0时有些依赖的部件无法选择,通过选择.Net CF1.0支持就完成选择了。

完成向导后,在编译内核镜像前,需要在Catalog中添加一些我们需要的组件和配置整个平台系统变量。在Catalog中点击右键就可以添加组件到工程中。可以在菜单View/Catalog中打开Catalog窗口,将选用到的组件添加到系统中。

针对本文中应用程序开发的需要,在EELiod 开发平台上选用的系统配置方案为:

(1)添加Usb AcTIvesync (文件同步)

(Catalog->Core OS -> Windows CE.net devices -> Applications - End User->ActiveSync->

File Sync)

(2)添加COM组件运行时加载支持

(Catalog->Core OS -> Windows CE.net devices -> Applications and Services Development-> Component Object Mode-> COM-> CoCreateGuid funcTIonality for OLE32)

(3)添加USB Mass Storage

(Catalog->Core OS -> Windows CE.net devices -> Core OS Services-> USB Host Support ->USB Storage Class Driver)

(4)添加Fat File System

(Catalog->Core OS -> Windows CE.net devices -> File Systems and Data Store -> Storage

Manager-> FAT File System)

(5)添加Disk Partition

(Catalog->Core OS -> Windows CE.net devices -> File Systems and Data Store -> Storage

Manager-> Partition Driver)

(6)添加软键盘

(Catalog->Core OS -> Windows CE.net devices -> File Systems and Data Store -> Storage

Manager-> Storage Manager Control Panel Applet)

(7)添加USB Client 驱动

(Catalog-> Device Drivers -> USB Function -> USB Function Clients -> Serial)

(8)添加网卡驱动

(Catalog-> Third Party-> BSPs -> Emdoor Systems XSBase270: ARMV4I -> Device Drivers

-> Networking->Local Area Networking(LAN) devices->lan91c111)

(9)添加Usb Activesync (USB Function).

(Catalog-> Third Party-> BSPs -> Emdoor Systems XSBase270: ARMV4I -> Device Drivers

-> USB Function->USB Function Bus Drivers->PXA27x USB Function)

3.3.3编译平台

在配置好 *** 作系统后,下一步就是编译,编译过程分成4个阶段:sysgen阶段、特征编译(feature build)阶段、发行目录拷贝(release copy)阶段、映像生成(make image)阶段。PB编译工具先产生头文件(header files )、成生模块(modules ) ,再把每个最后得到的模块拷贝到发行目录下,最后产生二进制系统映像(默认为NK.bin)。在开始编译前,需要通过Platform->Setting对话框来配置一些编译选项,在该系统中所设置编译选项如图3所示。

3.3.4 下载镜像

编译整个平台,待编译成功后会在Release目录($ FLATRELEASEDIR )下会找到一个Bootloader 镜像文件eboot.nbo和系统镜像文件NK.bin。在向目标板上下载系统镜像文件之前,先要在目标板上下载BootLoader镜像文件。下载BootLoader镜像使用jflash工具。具体使用方法为将Eboot.nb0复制到jflash工具执行文件所在的目录,打开命令行,转到Jflash目录,执行 Jflash pxa270 eboot.nb0  命令。

Jflash 使用PC机的并口将eboot.nb0下载到开发板,上面命令中Pxa270是我们开发板上JTAG接口的相关配置信息。向目标板上下载系统镜像的途径有多种,如通过串口、并口、网卡、USB等。只要BootLoader PC机上支持,可以选择效率高的一种来下载镜像。本论文中我们用到的BootLoader程序Eboot支持网卡下载,使用Platform Builder自带下载工具下载。下载配置如图4所示:

Target->Connectivity Options in Platform Builder.

基于Intel PXA270的WinCE *** 作系统移植,第4张

图3 配置平台编译设置                         

基于Intel PXA270的WinCE *** 作系统移植,第5张

图4 *** 作系统镜像下载

4.应用程序开发

在Windows CE.net嵌入式 *** 作系统上进行应用程序开发时,首先要考虑到一个问题:应用程序开发、调试和运行在不同的平台之间进行的。所以我们在进行开发前,首先要导出一个针对该系统的开发工具包(SDK),这一步工作要在编译完 *** 作系统后完成。将编译好

的SDK安装到开发的PC机上,就可以使用EVC进行应用程序开发了。图5为在论文所定制和移植的 *** 作系统上开发的儿童多媒体词典的运行效果图。

基于Intel PXA270的WinCE *** 作系统移植,第6张

图5 儿童多媒体词典的运行效果图

5.结束语

嵌入式 *** 作系统应用在千变万化的硬件环境中,所以要根据硬件环境的变化进行配置,来满足不同的应用要求。本文介绍了Windows CE.net在Intel PXA270的移植过程,对于其他处理器硬件环境,同样具有参考价值。

本文作者创新点为解决了Windows CE.net在Intel PXA270的移植过程中的重点和难点,对嵌入式系统开发具有参考价值。

参考文献

[1] EMDOORc o.ltd. EELiod开发平台 WinCE使用手册 [电子文档]. 2006-06-20

[2]Intel co., Ltd .Intel PXA27x Processor Family Developers Manual[电子文档].October 2004.

[3] Micorosoft co., Ltd. Micorosoft document collection 8.0[电子文档]. 2005

[4]陈向群,王雷等.Windows CE.net系统分析及实验教程.北京.机械工业出版.2003-05-20

[5] 单承刚,戴学丰等.基于ARM 的嵌入式BootLoader 设计与启动过程[J].微计算机信息,2006,22卷11-2:139-142

[6] 杜春雷.ARM体系结构与编程.北京.清华大学出版社,2003-11-18.

[7] 李佳.基于 Windows CE.net 的嵌入式系统研究与应用[D].华北电力大学硕士研究生论文.2005-3-6

[8]王沛然.基于Windows CE.net的手持终端系统软件设计[D].浙江大学硕士学位论文.2004-03

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2491143.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-04
下一篇 2022-08-04

发表评论

登录后才能评论

评论列表(0条)

保存