基于WinCE平台的应用程序移植研究
- 格式:pdf
- 大小:330.59 KB
- 文档页数:4
近期,公司让我负责一个嵌入式消费产品的开发项目。
此产品原来的操作系统是WinCE 5.0,现在因应市场需求不但要增加功能更加强大的硬件,而且公司也要求把操作系统升级为WinCE 6.0。
在接手此项目后,我立即开始进行操作系统的定制开发,但结果却是欲速则不达。
后来,我在时间和成本的多重压力因素下反思时,发现我犯了一个致命的错误,就是为了更快的把产品推向市场,在开发过程应该是移植操作系统而不是重新定制操作系统。
本文根据我在此项目上得到的经验和总结,先分析BSP移植对WinCE的重要性和影响,然后在此基础上通过对Bootloader、OAL和驱动程序的移植来具体探讨BSP的移植过程。
什么是WinCE操作系统移植?(1)为什么要进行操作系统移植?目前嵌入式系统应用变得越来越广泛了,嵌入式产品充斥着许多领域,如日常生活的手机、MP4、PDA等都属于典型的嵌入式系统。
随着技术和消费者需求的变化,即使是同一类型的嵌入式产品也会存在着硬件平台的变化,或会存在着软件平台的更新换代。
因此,为了更快的适应市场需求,在实际开发过程更倾向于移植操作系统而不是重新开发操作系统。
这样不但可以节省时间,还能大大提高开发效率。
由于嵌入式系统是一个软硬件紧密结合的系统,因此操作系统移植包含两个层面上的工作:一个层面是CPU级的,另一个层面是板级的。
由于WinCE操作系统几乎完全是用C语言编写的,所以可移植到众多的32位微处理器上。
这其中包括ARM、x86、MIPS和SHx等,而且CPU 级的移植通常由微软或芯片制造商来完成,这会极大地减轻0EM厂商开发过程中移植操作系统的工作量,但板级层面的移植则还是需要由OEM厂商来完成的。
一般来说,一个WinCE系统包括四层结构:应用程序、WinCE内核映像、板级支持包(BSP)、硬件平台。
而基本软件平台则主要由WinCE系统内核映像(OS Image)和板卡支持包(BSP)两部分组成。
因为WinCE系统是一个软硬件紧密结合的系统,因此即使CPU处理器相同,但是如果开发板上的外围硬件不相同,这个时候还是需要修改BSP来完成一个新的BSP。
Win CE移植心得WINCE是有微软推出的一款面向消费类电子市场的嵌入式操作系统,它的实时性能没有VxWorks那么强,但正是这一点使得它成为消费电子市场的新宠,现在有许多公司和研发机构都开始把注意力转移到WINCE 的开发上了了。
以下简要谈谈我前段时间在S3C2410上移植的一些经验。
1。
软硬件平台:pc要求512M内存,P4以上CPU,10G以上硬盘空间;串,并口下载线;双机互连线;JTAG 仿真器;NETARM-2410 实验箱;PLATFORMBUILER;.NET FRAMEWORK1.0;VS2005(可用EVC 或EVB);超级终端;JTAG驱动。
2。
EBOOT ,TOC,NBOOT,这三个文件由厂家提供,自己开发板子的话只能由自己来写了。
三个文件烧在FLASH的前三个BLOCK里,TOC负责保存上点后进入操作系统前的各项配置,具体可参考厂家提供的具体使用方法。
3。
使用NK.BIN,我们在后边不管做多少的工作基本就是围绕着这个NK.BIN进行的。
这个文件由PLATFORMBUILDER来生成,这个软件的使用和VC的比较相似,只要按照说明书以及一些论坛上介绍的方法进行就能生成一个镜像了,当然那可能不是我符合我们要求的,如何配置那些选项可以查阅网上的资料,在VCKBASE里付林林有个专栏就是介绍这个的。
4。
完成以上几步就可以把NK.BIN烧到FLASH中去了,需要提醒的是,之前的那3个文件是通过JTAG 烧进去的,而NK.BIN是要通过双机互连线传过去,还有可以用USB传输的,但我没试过,其实这些都很简单,因为这些的底层软件已经由厂家做好了,烧好之后你就可以看到一个比较熟悉的界面了,是不是很想WINDOWS 其实它的好多API都和PC WINDOS是通用的。
5。
开发程序,如果你只是要把哪个镜象烧进去什么也不干,那其实是没多大意思的;如果你要开发应用程序,那么开发才刚刚开始,你需要使用EVC ,EVB ,+PB;如果开发驱动程序,那么开发的程序能在这时其作用,你的工作就是成功的。
基于S3C2440硬件平台的Windows CE移植系统移植是解决嵌入式操作系统在不同硬件平台上运行的关键技术,论文以基于S3C2440的嵌入式系统为目标硬件平台,分析了Windows CE操作系统在该平台上移植的相关技术,重点阐述了BSP的框架结构和功能,以及各部分的具体实现,移植充分考虑了代码的重用性原则。
标签:操作系统移植;S3C2440;Windows CE;板级支持包前言近年来,嵌入式技术及产品的快速成长成为了全球IT产业发展的显著特征之一,嵌入式系统以多种形式,日益融入到我们的工作和生活中。
操作系统作为嵌入式系统最重要的软件系统,需要在用户定制的硬件平台上运行,要解决这一问题,就要实现嵌入式操作系统的移植。
移植的目的是使嵌入式操作系统能在特定的硬件平台上运行,它是进行嵌入式系统应用软件开发的基础。
在实际的嵌入式项目开发过程中,采用操作系统移植可以显著缩短软件开发的周期,加快新产品推向市场的时间。
鉴于此,本文对Windows CE在基于S3C2440硬件平台上的移植进行研究。
1 Windows CE及目标硬件平台Windows CE是微软开发的一款功能强大的实时嵌入式操作系统,它采用模块化设计,使得开发人员根据需要定制设备,有助与快速地开发功能各异的产品与服务。
同时,微软为Windows CE的开發提供了一系列的集成定制和开发工具,其中,进行Windows CE 操作系统移植用到的开发工具为Platform Builder(以下简称PB),它是一个集操作系统“构建-调试-发布”三者为一体的集成开发环境。
目标硬件平台以S3C2440为主控,S3C2440是samsung推出的一款16/32 bit 的RISC嵌入式微处理器,它采用ARM920T内核,并具有丰富的片内资源。
同时,硬件平台采用256M的Nand Flash和64M的SDRAM分别作为硬盘和内存。
同时,扩展串口用来输出调试信息,采用DM9000来扩展以太网接口来实现网络通信,利用UDA1341TS音频编解码芯片来实现音频的采集和播放。
WINCE移植简要开发步骤一、建立新的BP工程,选择适当的CPU选择一个合适的模板勾选必要的组件选择合适的网络组件,去掉设备不支持的设备组件二、为工程添加设备驱动1、添加SD卡的支持添加Device Drivers->SDIO->SD Memory添加Device Drivers->SDIO->SDIO Host->Samsung 2410SDIO Host2、添加BSP板载驱动添加Catalog->BSPs->Samsung SMDK2410:ARMV4I->Device Drivers下要用的各种设备三、添加开发和应用程序支持1、添加MFC支持添加Catalog->Core OS->Windows CE devices->Applications and Servies Development->Microsoft Foundation Classes(MFC)2、添加SQL CE的支持添加Catalog->Core OS->Windows CE devices->Applications and Servies Development->SQL Server CE2.03、添加其它想添加的组件,但要注意不要使用的就不要添加,以免镜像文件太大四、设置各CPU语言和编译设置(注意,每种CPU都要设置一下)设置语言设置编译选项五、修改注册表(打开如图所示platform.reg文件进行编辑)1、设置网卡为DHCP模式设置网卡为DHCP模式,在PB5和EVC4中才可以通过微软同步软件实现远程连接和调试,查找TcpIp子键,添加或者设置AutoCFG,EnableDHCP两个值[HKEY_LOCAL_MACHINE\Comm\CS89001\Parms\TcpIp]"AutoCFG"=dword:1"EnableDHCP"=dword:12、设置触摸屏的初始坐标参数查找TOUCH子键,添加或者设置CalibrationData的值:[HKEY_LOCAL_MACHINE\HARDW ARE\DEVICEMAP\TOUCH]"MaxCalError"=dword:7"CalibrationData"="395,763 799,251 759,1279 47,1275 67,215"3、设置SD/MMC卡的目录名称查找SDMemory子键,设置Folder的值,这个值在我们调用CD卡上的程序时候要用到,如果不设置,也可以通过在程序中遍历目录的方法来查找:[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\SDMemory]"Name"="SD Memory Card""Folder"="Storage Card"六、编译自己的WinCE分别选中不同类型的CPU,点击Build OS->Sysgen编译系统,为了减少错误,请暂时关闭木马防火墙软件七、打包制作SDK把内核编译完成后,就可以打包制作自己的SDK了。