原创 Windows CE.Net操作系统的移植

2008-7-17 12:53 2124 7 7 分类: MCU/ 嵌入式


 
查看文章
 


Windows CE. Net操作系统的移植

2007-05-03 11:49



Platform Builder 4.2是Microsoft公司为开发基于Windows CE. Net操作系统的可定制平台而专门设计的集成开发开台,包括集成开发环境、平台生成器、SDK导出器、调试器、远程实用工具、仿真器等。它能使用户方便地设计和调试基于Windows CE. Net的平台。


1.1 Windows CE. Net的一般开发流程


a)操作系统的定制
*定制BSP(包括Bootloader的编写)
*定制系统模块
*定制OAL、Driver、shell
*完成操作系统的定制以后,可能通过Platform Builder 4.2编译生成NK.bin或者NK.Nb0文件,至此Windows CE. Net的内核就定制完成了,接下来便可以开发自己的应用程序;


b)应用程序的开发
*安装SDK,联机测试建立开发环境污染
*开发中间模块
*开发应用程序,最后形成exe文件


c)产品的生成
*发布鞋(可以两种形式:AP与NK.bin 分开发布或者是AP集成进NK.bin 发布)。
*下载到硬件平台的Flash 中
*脱机运行
其流程可以如图所示。


点击看大图


1.2 基于WindRain硬件平台的Windows CE. Net操作系统开发流程


a)开发基于WindRain板的BSP(Board Support Package):
BSP的开发主要包括Bootloader 的开发、OAL(OEM Adaptive Layer )的开发、本地驱动程序的开发、平台文件配置等。
(1)Bootloader主要的开发
Bootloader主要用来管理目标平台的启动过程,包括初始化硬件设备,下载操作系统的映像文件等。有了Bootloader,用户可以快速下载一个操作系统的映像并在硬件平台下运行。Bootloader的开发是BSP开发的第一步,也是关键的一步。只有得到一个稳定工作的Lo ader程序,才能够更进一步开发WinCE的BSP,直至最后整个系统的成功。
具体步骤是:运行Platform Builder 4.2,选择Platform-BSP Wizard,从intel DBPXA250 DEV Platform:ARMV4I克隆一个新的BSP,命名为MyPxaPlat。完成后,从资源管理器可以查看到在%-winceroot %(笔者机子上为D:/wince420)中径下面的Platform中新增了一个目录MyPxaPlat。根据硬件平台的特点,修改% winceroot %的源文件fwxsc1.s、main.c、Flash. C、Edeviceinit. C等,使其符合自己的硬件平台。为了调试方便通常在函数OEMPlatformInit中加入一些自定义命令的处理,这样便可以通过串口接收命令完成相庆的功能。进入DOS命令行提示符,分别输入cd-winceroot=D: D 、cd%-winceroot%,wince ARMV4I HLBASEE MYPXAPLAT, 完成命令行解释器的设定,然后运行sysgen,定位%-winceroot%,build-c、romimage boot.bib,在%-winceroot%ARMV4I路径下可以看到Eboot. exe、Eboot. bin、. nb0等文件,通过Jtag向Flash中写入Eboot.nb0文件,上电运行,就可以从超级终端中看到一些启动和调试信息。
(2)OAL(Adaptive Layer)
OAL即设备商适配层中指位于Windows CE内核和目标硬件平台之间的一个代码层。开发OAL的目的是为了使Windows CE.net内核和目标硬件之间实现通信,包括处理中断、定时器等。
OAL的实现也是在fwxsc1.s、main. c、Flash.c、Edeviceinit. C等文件中,根据需要修改相应代码,并在此基础上通过Build工具生成Buildexe目录、内核执行镜像Kernkitl. exe以及CEDDK.dll文件等。
(3)驱动程序的开发
Device Drivers(驱动程序)是指能够管理虚拟或者物理设备、协议、服务等的一段软件模块,操作系统通过驱动程序直接和硬件打交道。
设备驱动设计的具体步骤是通过Platform Builder创建一个新的平台,然后根据硬件平台的需要插入和移除驱动,需要修改的文件有Platform. Bib、Platform. reg及驱动程序源代码等,下面对显示驱动为例说明具体的设计方法:
I根据自己的硬件修改相关的源代码
在platform.bib中插入DLL
ddi.dll $(-FLATRELEASEDIR)video. dll NK SH
在platform. reg中检查屏幕的size和Bpp
"DisplayType "="LTM04C380K "
"CxScreen "=dword: 280
"CyScreen "=dword: 1E0
"Bpp "=dword: 10
定位目录D: LCD,通过build
sa2video. dll文件。
II调试驱动文件。其它的设备驱动都可以仿照上述思路进行开发。
(4)平台文件的配置
平台配置文件包括源代码配置文件和操作系统镜像配置文件。源代码配置文件主要上告诉Build工具需要用到的路径、C或Visual C ++的源文件以及生成什么类型的二进制文件等,包括Dirs文件、Sources文件和Makefile文件等。操作系统镜像配置文件则主要用于给Makeimag工具生成操作系统镜像,包括.bib、.reg、.dat、.db等文件。
由于笔者的BSP是通过克隆生成的,所以源代码配置文件可以不做修改,只需根据需要对像配置文件做相应的修改就行了。


b)在Platform Builader中配置内核和编译映像
具体步骤是:打开Platform Builder,通过Manage Catalog Features调入上面生成的BSP(即.cec文件),运行New Platform Wizard生成一个新的Project,通过Build菜单,编译便可得到Windows CE. Net映像文件Nk. nb0和NK. bin。


c)导出平台SDK并编写应用程序
编译完成后,通过Project菜单中的Export Wizzard导出一个平台SDK,供在Embedded Visual C++或者Visual studio. Net中开发上层应用软件使用。


d)下载映像并脱机运行
通过CF网卡将Windows CE. net映像文件下载到Flash中,脱机按复位键,屏幕上显示Windows CE. net的启动画面,说明Windows CE. net已成功运行。开发的上层应用软件则可以通过PC 机上的ActiveSyn同步软件下载到Flash中。



文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /2 下一条