Windows CE系统软件移植流程
- 格式:doc
- 大小:1.78 MB
- 文档页数:8
近期,公司让我负责一个嵌入式消费产品的开发项目。
此产品原来的操作系统是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;如果开发驱动程序,那么开发的程序能在这时其作用,你的工作就是成功的。
Windows CE 5.0软件安装过程首先,在安装Windows CE 5.0 之前我们要安装Microsoft .NET Framework 1.1,这是Microsoft制作的一个组件包。
如果不安装这个软件将无法安装Windows CE 5.0。
双击Microsof Windows CE 205.0.msi文件,如图。
会出现Welcome to Microsoft Windows CE 5.0的安装提示界面,如图。
点击“Install”,会出现如下界面。
Install准备后,出现如图界面。
点击“Next”后显示授权协议界面,选择“I accept the term in the licence agreement”如图。
单击“Next”,显示客户信息界面,键入用户信息,并输入产品密匙,如图。
单击“Next”,出现安装类型界面,选择“Custom(tool and OS)”安装类型,如图。
单击“Next”,如图显示的是目标文件夹对话框,单击“Change...”按钮,设置PlatformBuilder 5.0安装文件夹和Windows CE操作系统安装路径及文件夹。
注意:一般情况下,C盘为桌面操作系统,所以意见将Platform Builder和Windows CE 操作系统都安装到C盘外的其他逻辑盘,如D盘或E盘等,但无论安装到哪个驱动盘,都不可更改如下图所示的相对路径和路径名,否则将来在执行系统编译时会出现严重错误。
单击“Next”出现如下图的定制安装配置窗口,选择要安装的CPU类型。
建议安装Emulator、X86、ARMV4I和xScale处理器(这主要取决个人所使用的CPU体系),并选择安装“Windows CE 5.0 Test Kit”。
另外“Share Source for Windows CE 5.0”是微软开放的Windows CE 5.0的源代码,建议高级用户选择安装。
基于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了。
WindowsCE6.0安装顺序-操作系统1、先装Visual Studio 2005, 我拿到的是Professional Edition。
最好别⽤DEFAULT安装,把组件CUSTOM⼀下,不然会花很多冤枉的磁盘空间。
WINCE600的Platform Builder不像WINCE500是独⽴的,⽽是作为VS2005的插件,以后建⽴和定制OS、编译调试全部在VS2005⾥完成4、安装MSDN,从VS2005的安装页⾥选择。
新版的MSDN界⾯功能看起来⽐较酷,但CE6的Product Documentation写得实在潦草,不少细节貌似没写清楚,所以这⾥建议选上CE5的产品⽂档留着以后作参考。
5、安装Windows Embedded CE 6.0。
应⽤开发⼈员可以不装,在后⽂会提到可以利⽤CE6⽣成的SDK来⼯作;但是不装的话,恐怕⽆法在本地MSDN得到CE6的产品⽂档,另外还有PUBLIC ⽬录下丰富的application sample code了。
⼏个注意点:(1) 在下图这步才可以改路径。
点选组件后,然后点下⾯的Browse。
这⾥不像WINCE500安装时有专门的⼀步来改路径。
害我狂点next/back⼏圈才找到。
(2) CE6没有专门的⼀个Emualtor(x86)选项了, 我以为是包含在x86⾥⾯, 后来发现x86部分我⽩装了。
WINCE600和VS2005的模拟器可以直接跑ARM指令,他们管这个叫ARMulator ( 貌似LINUX 上先有这个东西, MS抄⼈家的? )。
这导致了CE5 的基于x86的Emulator⽆法在VS2005上跑起来,得⽤个很绕路并且不太好⽤的⽅法,等我⽤顺了再写⽂章出来。
(2) 注意磁盘空间,我选装了ARMV4I和X86两个,⽤掉6.5G,⽐WINCE500还要⼤些。
--------------------------------如果BSP开发⼈员不打算⽤模拟器的话,装到这步就⾏了。
在博创UP-NETARM2410-S开发板上移植Windows CE详解2010-08-21 18:36一、Bootloader烧写首先将开发板与PC机连接好,包括JIAG线、串口线、交叉网线。
将开发板附带光盘中的sjf2410.exe、2410loader.bin、tocblock1和EBOOT.nb0复制到同一个目录下,这里复制到了C盘的根目录下。
在命令行下运行sjf2410.exe:1.烧写2410loader.binStep01:Step02:选择0Step03:选择0Step04:选择0,将2410loader.bin烧写到flash第0块中Step05:选择2,退出2.烧写tocblock1 Step01:Step02:选择0Step03:选择0Step04:选择1,将tocblock1烧写flash的第1块中Step05:选择2,退出3.烧写EBOOT.nb0 Step01:Step02:选择0Step03:选择0Step04:选择2,将EBOOT.nb0烧写到flash的第2块中Step05:选择2,退出二、系统镜像下载1.EBOOT参数设置将开发板上电,在超级终端下可以看到如下画面设置正确的IP地址、子网掩码(选项1)、MAC地址(选项7)、开机延迟时间(选项2);选项5设置为"LAUNCH EXISTING"(即使开发板上电后,默认启动flash中已存在的系统镜像);选项6设置为"ENABLE",这样才能将系统镜像烧写到flash中去,否则只是将镜像下载到RAM中去,开发板掉电后,即丢失了;选择W,将设置好的参数保存到flash中去;选择F,格式化flash选择9,将引导介质格式化成二进制文件系统2.PC机IP地址设置一定要PC机和开发板设置在同一个子网内3.Platform Builder设置打开Platform Builder可以新建新的工程,然后编译产生系统镜像。
Windows CE系统软件移植流程
Windows CE(以下简称CE)是一个可定制的嵌入式操作系统,为了适应不同的硬件平台,需要对BSP、Device Driver、bootloader等进行修改、定制。
本文主要讨论在BSP、driver 等已完成的基础上如何移植,关于BSP、driver等的定制在其他文档中详细描述。
Microsoft为定制CE平台提供了一个集成开发工具——Platform Builder(以下简称PB),我们的工作都是利用这个工具完成的。
另需注意,本文是以X-Hyper255B开发板为例进行说明的。
1.安装BSP(Board Support Packet)
为了定制CE,BSP是必需的。
BSP包括bootloader、kernel、Device driver和configuration。
在利用PB生成特定平台的CE之前,必须先安装针对该平台的BSP。
例如,在安装完X-Hyper255B开发板的BSP后,在PB的Third Party中会出现它的BSP。
2.为X-Hyper255B定制CE平台
2.1. 创建一个新平台
1.在PB中选择File->New Platform开始“New Platform Wizard”。
2.在BSP列表中选择“X-HYPER255B:ARMV4”。
3.后续步骤按向导的提示进行,比较简单,这里不再赘述。
2.2. 设置平台参数
在生成kernel image之前应该对平台进行一些设置。
1.如下图,右键单击选择“Settings…”(也可选择Platform->Settings)
2.在“Build Options”选择页中选中“Enable Eboot Space in Memory”和“Enable Full
Kernel Mode”。
2.3. 生成Kernel Image
1.选择Build->Generate Platform Headers。
2.选择Build->Build Platform。
3.烧写Eboot(Ethernet Bootloader)
与烧写FLASH有关的文件有4个:
Jflash.exe:FLASH烧写程序
giveio.inf、giveio.ini、giveio.sys:JTAG的驱动
3.1. 在Windows2000下安装JTAG的驱动
1.将giveio.sys文件拷贝到C:\Winnt\System32\drivers目录下。
2.利用添加硬件向导安装驱动。
过程如下所示:
3.2. 将Eboot烧写进FLASH
以X-Hyper255B为例,在WINCE410\PLATFORM\X-Hyper255B\target\ARMV4\retail目录下找到eboot.nb0文件。
启动开发板,使用Jflash.exe程序将其写入FLASH。
4.下载kernel image(nk.bin)
4.1. 设置“超级终端”
通常目标板会通过串口输出调试信息,用串口线连接PC机和目标板后,可以利用Windows的“超级终端”来查看。
点击开始->程序->附件->通讯->超级终端,运行后需要对
端口的波特率等进行设置,以X-Hyper255B为例,设置如下:
4.2. 下载kernel image
1.运行“超级终端”后,启动开发板,按空格键进入bootloader设置。
设置IP地址或DHCP,确保6项为Program RAM image into FLASH:(Enabled),
连好网线,然后选择D项开始下载。
2.在PC机的PB中打开前面创定制的CE平台,选择Target->Configure Remote
Connection of Platform Builder,配置如下:
再点击Configure按钮,选择可用设备
接着选择Target->Download/Initialize,开始下载nk.bin。
至此,定制的CE已经下载并写入了目标板的FLASH中。
另外,有关开发板bootloader 的具体设置请参阅开发板的用户手册。