Wince操作系统的定制.ppt
Wince操作系统的开发与定制,(一)一般的操作系统,要保证系统的正确性和健壮性使系统具备一定的高效性使系统具备易维护性是系统具备可移植性,一、操作系统的设计目标和特点,(二)嵌入式操作系统,特点:资源有限要适应和使用的设备种类繁多外部设备千变万化设计目的:占有资源要少具有开放性、可伸缩性的体系结构具备较高的可靠性满足一定的实时性要求能够提供较强的网络功能能够固化代码,(三)Wince操作系统,特点:适应小型系统支持多种处理器和计算机结构支持高要求的实时设计操作系统个部分模块化提供网络通信、图形用户界面、数据库、文件等支持提供高级电源管理,(三)Wince操作系统,设计目标:灵活的电源管理功能对象存储技术良好的通信能力支持嵌套中断更好的线程响应能力256个优先级别出色的图形界面多任务处理能力内置的多媒体处理功能,二、Wince.NET的主要开发工具,Platform Builder 用于构造基于Windows CE操作系统的嵌入式平台,辅助开发某一个特定硬件平台的Windows CE操作系统和基本应用环境。Windows CE Application Frameworks 该工具的核心是Embedded Visual C,具有和Visual C 6基本相同的特性,包括对MFC、ATL以及COM/DCOM的支持、应用程序向导。编译调试等多种功能。Emulator 是桌面Windows系统的一个应用程序,可以运行经过特定编译处理的Windows CE.NET系统。,(一)Embedded Visual C+(EVC)介绍,Embedded Visual C+(EVC)是微软公司提供的开发嵌入式软件的平台,它是Visual C+的子集。EVC 自带了标准的Windows CE 的SDK,如果读者有需要,可以从Platform Builder中导出SDK,然后安装在EVC 中。,EVC 和Platform Builder 的不同之处在于:1、Platform Builder 针对的是操作系统的定制,编译目标是整个OS 的内核,虽然Platform Builder 也能开发应用程序,但是这些应用程序是作为整个系统的一部分而存在,编译时还是以一个操作系统为单位。2、EVC 针对的是应用软件开发,特定操作系统的SDK 就已经为它提供了系统的运行环境,因此它编译的单位是一个应用程序,EVC 会提供虚拟器加载SDK 来运行应用程序。,(二)Platform Builder介绍,Platform Builder 是微软公司提供给Windows CE开发人员进行基于Windows CE平台下嵌入式操作系统定制的集成开发环境。它提供了所有进行设计、创建、编译、测试和调试Windows CE操作系统平台的工具。它运行在桌面Windows下,开发人员可以通过交互式的环境来设计和定制内核、选择系统特性,然后进行编译和调试。同时,开发人员还可以利用Platform Builder 来进行驱动程序开发和应用程序项目的开发等等。Platform Builder 的强大功能,已使其成为Windows CE 平台下嵌入式操作系统开发和定制的必备工具。,Platform Builder 提供的主要开发特性,开发平台向导(Platform Wizard)和BSP开发向导(BSP Wizard)基础配置 特性目录自动化的依靠性检查基本测试工具集内核调试器导出向导(Export Wizard)导出SDK向导(Export Wizard)远程工具仿真器(Emulator)应用程序调试器提供了对NET FrameWork Compact Edition的支持,三、Platform Builder集成开发环境,Platform Builder 主界面,(一)目录(Catalog),BSPsCore OS设备驱动器平台管理器第三方特性,BSP:Board Support Packages(板级支持包)Core OS:(核心操作系统)Applications and Services Development Applications-End User Communication Services and Networking Core OS Services Device Management File Systems and Data Store Fonts(字体文件夹)International Internet Client Services Multimedia Technologies Security Shell and User InterfaceVoice over IP Phone ServicesWindows CE Error Reporting Device Drivers Platform Manager,目录(Catalog)项,(二)Build Options,Buffer tracked events in RAM 选择该选项Windows CE会使用OSCapture.exe来记录日志,日志是存放在RAM里的.Enable CE Target Control Support 选择该选项可以在启动时使能目标控制功能(target control support).选择这一项同时也打开了内核无关传输层(Kernel Independent Transport Layer KITL).Enable Eboot Space in Memory 选择该选项可以在Config.bib文件中预留内存空间,这样boot loader把部分信息写入此空间,允许在启动过程中操作系统可以读取boot loader存储的数据.Enable Event Tracking during Boot 选择该选项可以开启事件跟踪子系统(event-tracking subsystem).Enable Full Kernel Mode 选择该选项可使线程运行在内核模式,选择该模式会使系统较脆弱,但是性能会有所提高.,Enable Kernel Debugger 允许调试器建立宿主机和目标机间的链接和传送调试信息Enable KITL 要建立宿主机和目标机间的通讯就必须选择该选项,取消该项也会同时取消被选定的“Enable CE Target Control Support”选项Enable Profiling 选择该选项可以将Windows CE的有关内核的信息以日志的形式装入平台镜像中Enable Ship Build 此项只有在Release配置中才会出现。取消此项选择,Windows CE会输出很多信息帮助调试。Flush Events to Release Directory 选择该选项将事件放入release目录,同时开启事件跟踪Run-time Image Can be Larger than 32 MB选择该选项,Windows CE的最终运行时映像可大于32MBWrite Run-time Image to Flash Memory选择该选项,允许运行时映像被烧写到FLash中,(三)Platform Setting,可对操作系统映像进行一些配置以满足特定的要求。,导出SDK,在Platform Builder中,可为自己定制的平台导出特定的SDK,以供开发人员使用。通过菜单栏的Platform实现。Platform Builder提供了SDK Wizard向导,来创建和生成SDK。(注意:在启动SDK Wizard之前,要确保自定义的平台已经成功构建并且可成功地运行;否则SDK会生成失败),导出SDK的步骤,选择Platform Builder主菜单的Platform|SDK|New SDK,输入SDK安装包的名称、制造商名称、语言和产品版本,输入开发语言支持,包括是否支持MFC、是否支持ATL和.NET Compact Framework等,SDK配置结束后,最后一步是把SDK打包,完成SDK Wizard后,还可以通过SDK Settings对话框对SDK进行更详细的设置,通过SDK Settings对话框对SDK进行更详细的设置,构建完成,选择Platform Builder主菜单的Platform|SDK|New SDK,输入SDK安装包的名称、制造商名称、语言和产品版本,输入开发语言支持,包括是否支持MFC、是否支持ATL和.NET Compact Framework等,完成SDK Wizard后,还可以通过SDK Settings对话框对SDK进行更详细的设置。,通过SDK Settings对话框对SDK进行更详细的设置。,SDK配置结束后,最后一步是把SDK打包。,构建完成,Windows CE的目录组织,通常,把Windows CE安装到根目录,Windows CE的目录会以“WINCE+版本号”的方式命名。在构建系统中,Windows CE的根目录通常用环境变量“_WINCEROOT”来标识。,(四)Windows CE的目录组织,1、Public目录,Public存放Windows平台开发工具,包括大量的驱动程序、应用程序开发套件,这个文件夹是所有微软公司提供的配置信息以及样例驱动程序和可裁剪代码被存储的地方。可以在这里建立自己的配置文件夹,但是自这个目录下改代码有风险,所以在修改代码前,最好对原文件做个备份。,在构建系统中,_PUBLICROOT环境变量用来标志Public目录。,Public目录,2、Private目录,在构建系统中,Private目录由环境变量_PRIVATEROOT标识。,Private是Windows CE的共享原始程序代码,主要包括应用服务、资源管理(开始菜单接口)、通信支持、资料储存管理器、图形使用者接口及事件系统、操作系统内核程序代码。所以,在Private目录下的代码一般是不希望开发者修改的,因为这可能会与发布出来的Wince产品产生兼容性和稳定性不好的问题。,3、SDK目录,SDK目录存放的是构建系统用到的编译器与其他一些辅助工具。在构建系统用_SDKROOT环境变量标识SDK目录。在SDKBINI386下存放构建系统可能用到的工具。个子目录ARM,MIPS,SH和X86分别是针对Windows CE所支持的个平台的C/C+语言与汇编语言的编译器。,4、Platform目录,Platform目录存放的是所有的BSP,在构建系统中用环境变量_PLATFORMROOT标识。Platform中的每一个子目录代表一个BSP。BSP的名字与开发板的名字一致。,5、Others目录,包含ATL,MFC的头文件,运行库等开发应用程序所需的库文件和其一部分代码。,四、定制Windows CE操作系统的一般流程,得到并安装BSP,定制操作系统,下载到开发板上运行调试,发布操作系统,(一)得到并安装BSP,BootLoader是BSP的一个部分。通常,在构建操作系统时,也会得到BootLoader的可执行映像。BootLoader在OS被下载到目标机前就先安装在目标机上。只需把BootLoader的映像用硬件厂商提供的Flash烧写工具烧写到开发板的Flash中让它开机执行即可。,1、安装BootLoader,(一)得到并安装BSP,得到BSP的途径:Platform Builder自带从硬件OEM厂商处获得 MSI安装包运行安装程序 源代码手工安装 手工安装的步骤:获得VIA x86 CX700开发板的Wince 5.0 BSP包 把目录VIACX复制到Windows CE安装目录的Platfom子目录下自主研发,在Platform IDE中选择菜单项File|Manage Catalog Items打开Manage Catalog Items对话框,安装BSP:,把BSP的CEC文件导入到Platform Builder中,(二)定制操作系统,根据具体的应用需要,选择合适的OS组件,并且构建运行时映像。此步骤结束后可在最终的发布目录中得到代表OS运行时映像的bin或nb0文件。构建结束后可能得到的文件:Nk.bin 必需。按照section组织的二进制操作系统映像Nk.nb0 可选。可直接烧到Flash中,支持XIP的操作系统映像Eboot.bin 可选。按照section组织的二进制以太网BootLoader映像Eboot.nb0 可选。可直接烧到Flash中,支持XIP的以太网BootLoader映像,(三)下载到开发板上运行调试,把运行时映像下在到开发板上进行运行调试。得到并安装BootLoader配置网络连接配置调试串口(可选)配置Platform Builder连接设置下载运行时映像,1、得到并安装BootLoader,BootLoader是BSP的一个部分。通常,在构建操作系统时,也会得到BootLoader的可执行映像。BootLoader在OS被下载到目标机前就先安装在目标机上。只需把BootLoader的映像用硬件厂商提供的Flash烧写工具烧写到开发板的Flash中让它开机执行即可。,2、配置网络连接,可通过两种方式连接开发机与目标机开发机与目标机都连接到HUB上。同一个网段内还会有一个DHCP服务器。通过以太网交叉网线把目标板与开发机连接。,用Hub为以太网配置网络,使用独立的网络链接为以太网配置网络,3、配置调试串口(可选),超级终端可用串口连接开发机与目标板,并且通过超级终端对EBoot发送控制命令。可在超级终端中设置开发板的IP地址及是否使用DHCP等选项。,4、配置Platform Builder连接设置,在开发机一端,选择Platform Builder菜单的Target|Connectivity Options打开Target Device Connectivity Options对话框。在Download和Transport两个下拉菜单中选择Ethernet,表示用以太网下载操作系统映像。,5、下载运行时映像,单击Download右边的Settings按钮,打开Ethernet Downlaod Settings对话框。如果开发机成功地收到了目标机的广播,那么在Active Devices列表框里面就会显示出来。选中目标,单击OK。这样,开发机上的Platform Builder就进入准备发送操作系统运行时映像的状态。,5、下载运行时映像,要开始下载,单击Platform Builder主菜单的Target|Attach Device。如果一切正常,那么会显示下载运行时映像到目标机的对话框。,四、发布操作系统,把Windows CE映像烧写到开发板的Flash ROM中。这样,Windows CE开机就可运行了。,谢谢!,