Platform Builder 是微软公司提供给Windows CE 开发人员进行基于Windows CE 平台下嵌入式操作系统定制的集成开发环境。它提供了所有进行设计、创建、编译、测试和调试
Windows CE 操作系统平台的工具。它运行在桌面Windows 下,开发人员可以通过交互式的环境来设计和定制内核、选择系统特性,然后进行编译和调试。同时,开发人员还可以利用Platform Builder 来进行驱动程序开发和应用程序项目的开发等等。Platform Builder 的强大功能,已使其成为Windows CE 平台下嵌入式操作系统开发和定制的必备工具。其SDK 输出模板可以将特定系统的SDK 导出,这可以是应用程序开发人员使用EVC就可以为特定的系统开发软件。EVC 调试的是应用程序软件,而Platform Builder往往要编译整个内核再调试,两者的开发效率是不同的。
具体来说,Platform Builder 提供的主要开发特性如下。
① 平台开发向导(Platform Wizard)、BSP(主板支持软件包)和开发向导(BSP Wizard)。开发向导用来引导开发人员去创建一个简单的系统平台或BSP,然后再根据要求作进一步的修改。提高了平台和BSP 创建的效率。
② 基础配置。为各种流行的设备类别预置的可操作系统基础平台,为自定义操作系统的创建提供了一个起点。开发人员可以很容易地定制并编译出一个具备最基本功能的操作系统。然后再在其上做后续的修改。
③ 特性目录(Catalog)。操作系统可选特性均在特性目录(Catalog)中列出,开发人员可以选择相应的特性来定制操作系统。
④ 自动化的依靠性检查。特性(Feature)之间的依赖关系是系统自动维护的。开发人员在选择一个特性时,系统会自动将这一特性所依赖的特性加上;反之,当删除一个特性时,
系统会自动检测是否已经选择了依赖于它之上的其他特性,如果有,系统会给出提示,通知开发人员这一特性现在不能删除。
⑤ 系统为驱动程序开发提供了基本的测试工具集。Windows CE Test Kit(测试工具包).
⑥ 内核调试器。可以对自定义的操作系统映像进行调试,并且向用户提供有关映像性能的信息。
⑦ 导出向导(Export Wizard)。可以向其他Platform Builder 用户导出自定义的目录(Catalog)特性。
⑧ 导出 SDK 向导(Export SDK Wizard)。使用户可以导出一个自定义的软件开发工具包(SDK)。即可以将客户定制的SDK 导出到特定的开发环境中(如EVC)去。这样开发人
员就可以使用特定的SDK 写出符合特定的操作系统平台要求的应用程序。
⑨ 远程工具。可以执行同基于Windows CE 的目标设备有关的各种调试任务和信息收集任务。
⑩ 仿真器(Emulator)。通过硬件仿真加速和简化了系统的开发,使用户可以在开发工作站上对平台和应用程序进行测试,大大简化了系统开发流程,缩短了开发时间。
应用程序调试器。可以在自定义的操作系统映像上对应用程序进行调试。提供了对 NET FrameWork Compact Edition(即.NET 平台精简框架)的支持。
深刻理解 Windows CE 的重要组件及系统提供的可选特性,并灵活运用Platform Builder的配置文件.REG、.BIB、.DAT、.DB 是定制适合目标平台的Windows CE 操作系统的关键。
Platform Builder 是商用软件,因此要通过正规途径获得。安装Platform Builder 至少需要4GB 的磁盘空间,建议使用512MB 以上的内存,1.8GHz 以上主频的处理器。其安装过程很简单,如下图所示:
安装完毕后的界面如下:
在 Platform Builder 4.2 安装以后,在安装的目录下会有以下5 个子目录。
Public 目录
这个目录下存放了和平台硬件无关的组件和配置文件。
Private 目录
Private 包含了Windows CE .NET 开放的源代码。
Platform 目录
这个目录下存放了硬件相关的信息。
SDK 目录
SDK 目录下包含了相关的工具和二进制来支持相关的平台。
Others 目录
Others 目录包含了各种运行时、样例程序和组件。
Embedded Visual C++(EVC)是微软公司提供的开发嵌入式软件的平台,它是Visual C++的子集。EVC 自带了标准的Windows CE 的SDK,如果读者有需要,可以从Platform Builder中导出SDK,然后安装在EVC 中。
EVC 和Platform Builder 的不同之处在于:Platform Builder 针对的是操作系统的定制,编译目标是整个OS 的内核,虽然Platform Builder 也能开发应用程序,但是这些应用程序是作为整个系统的一部分而存在,编译时还是以一个操作系统为单位;EVC 针对的是应用软件开发,特定操作系统的SDK 就已经为它提供了系统的运行环境,因此它编译的单位是一个应用程序,EVC 会提供虚拟器加载SDK 来运行应用程序。众所周知,编译内核和编译应用程序的时间开销是大不一样的。
下面以kaola 开发板为例子,首先请从嵌入式研究网下载本书推荐的开发板BSP,下载地址为http://www.cnemb.com/CEbook/kaola.zip。解压文件包,得到kaola 文件夹。
(1)将此目录复制到%WINDOWS CE420%\PLATFORM 下。
(2)然后打开Platform Builder,在工具栏中依次选择File→Manage Catalog Features。
(3)在弹出的对话框中单击“Import”按钮。在弹出的文件选择框内,选择kaola 目录下的TTI255.cec 文件,单击“打开”按钮。
(4)在Platform Builder 的Catalog 目录的ThirdParty 中就能看到kaola 的BSP 树状结构了,如图
下面以定制仿真平台的操作系统为例子。首先在Platform Builder 主界面中依次单击FileNew→Platform,将出现如图 所示的对话框。
Next
在 EMULATOR x86 前打勾,表示选用EMULATOR 的BSP 包,接下来在对内核提供的功能进行裁减。Windows CE 支持目前流行的多款CPU 系统,主要有x86 系列、ARM 系列、MIPS 系列、SH3 系列、SH4 系列等,每一种系列除了相应的标准开发包外,还带有此系列中较为常用的具体CPU 的开发包,如X86 系列除标准的CEPC(对应所有的x86 系列)开发包,还带有一个NATIONAL GEODE:X86(对应美国国半的SC1200 系列)开发包。
如图 11 所示,在选择一种开发包后,在对话框的右半部分会显示相应开发包的说明,表明这个开发包支持哪个公司的产品,相应的芯片是什么。
以同时选择几种 BSP,在编译时在选择相应的开发包进行编译,在此为了讲解方便,只选择x86 的仿真器方式(EMULATOR:X86),单击Next 按钮,出现图12 所示的对话框。
选择 Mobile Handheld,表示手持移动设备,并且填写文件路径。按Next,将如图13 所示的界面。这里列出了内核提供的功能以及各重应用程序。按 Next,将如图14 所示的界面。这里列出了内核提供的网络的设置选项。按 Next,将如图15 所示的界面。这是对所有功能和 BSP 的总结列表,按Next,将显示如图16 所示的Platform Builder 开发界面。
自定义了一个平台之后,可以准备用于生成一个操作系统镜像,在介绍操作步骤之前,先介绍Platform Builder 可以生成的两种镜像。
一种是用于发布给用户,被称为Release 版,生成后的文件存放在C:\WINCE400\PUBLIC\Kaola\ RelDir\EMULATOR_X86Release 目录下。
另种是用于调试,被称为 Debug 版,生成后的文件存放在C:\WINCE400\PUBLIC\Kaola\RelDir\EMULATOR_X86Debug 目录下。
选择生成版本后,有以下几步还需要进行设置。
单击 Build 菜单,选择Set Active Configuration 一项。从显示的列表中选择要编译的版本号。
单击 Platform 菜单,选择Setting 一项。在弹出的对话框中选Build Options 选项卡,勾选Enable CE Target Control Support、Enable Eboot Space in Memory、Enable FullKernel Mode、Enable Images Larger than 32MB、Enable KITL 复选框。单击“OK”关闭Platform Setting 对话框。
单击 Build 菜单,选择Build Platform 一项,系统开始生成镜像文件。
在系统 build 过程中,有时会出现一些对话框,警告现在准备将Digital Rights
Management 或.NET Compact Framework Beta Release 等加到平台,直接单击“OK”按钮就可以。
进行编译的时间要根据考虑 PC 硬件条件及所定制的操作系统镜像大小,如果定制的是一个较大的操作系统镜像,等待时间可能较长,这段时间读者可以看一下输出窗口(Output
Window),它显示的是生成系统的整个过程,这对读者更好地理解系统有很大帮助。当输出窗口最后显示“TEST - 0 error(s),0 warning(s)”时,表示定制的操作系统镜像已
经生成完毕,可以使用了。
在生成的目录下,可以看见很多的文件,这些文件及目录均是在生成操作系统镜像时所需要的文件,Platform Builder 就是根据这些文件来生成系统镜像文件。这些文件中,有一个 NK.BIN 文件,这个文件就是适用于本例设备的操作系统镜像文件,也就是设备最终要用的Windows CE.NET 内核,用BootLoader 程序加载这个文件就可以启动Windows CE.NET 操作系统。
仿真是用与开发工具(Platform Builder)所在的相同PC 上,用软件的方式来模拟WindowsCE 运行,主要用来进行调试。在使用仿真调试前需要进行设置,在Platform Builder 主界面单击Target 菜单,选择Configure Remote Connection 命令,系统将启动如图20 所示界面。由于是进行访真调试,所以在“Download:”处选择Emulator,在“Kernel:”处也选择Emulator。
单击“Download:”下拉框后面的“Configure...”按钮,可以打开设置仿真环境的对话框,可以看到缺省的Memory 值为48,需要改为64。
配置完成远程服务后,单击Target 菜单,单击Download/Initialize,系统开始运行仿真程序
下面介绍使用Platform Builder 来建立这个平台的SDK,这样就可以把这个SDK 提供给相应的软件开发组,这样他们就可以使用这个SDK 为专门为这个平台开发应用程序。
(1)首先停止与目标设备的连接(或是仿真),停止调试工作。
(2)单击Platform 菜单,选择Configure SDK,启动SDK 配置向导程序。
(3)首先是欢迎画面,单击“Next”按钮下一步即可。
(4)在Product name for MSI installation 输入框中输入“MyCEPCTestSDK”,在
Manufacturer name 输入框中输入制造厂商名字,我们这里输入“Test”,单击“Next”按钮。
(5)下一步是让选择这个SDK 准备支持的开发语言特性,一共有两个选择,一个是EVC、另一个是.NET,这里选择EVC,然后单击“Next”。
(6)单击“done”,退出配置程序,本例中,这时可以到C:\WINCE410\PUBLIC\Kaola\MakeSdk(具体目录与建工程时的目录有关)下查看,可以看到一个Platform.ini 文件。
(7)单击Platform 菜单,选择Build SDK 菜单项,开始生成SDK,需要等待一会儿。
(8)等完成所有过程后单击“done”按钮,在C:\WINCE410\PUBLIC\Kaola\SDK 目录下的文件就是最后生成的SDK 文件,此时就可以将这几个文件提供给应用程序开发人员进行安装了。
Windows CE.NET 的标准SDK 提供了一组公用子集特性,这个子集使编写的应用程序符合标准SDK,以运行在基于显示的Windows CE.NET 平台上。为了保证与标准SDK的兼容,应用程序只能使用标准SDK 提供的特性。使用附加的特性会使应用程序与标准SDK 不兼容。
为了在Windows CE .NET 平台上实现标准SDK,Windows CE .NET 标准SDK 这一特性必须加入到基于显示器的内核镜像中。标准SDK 限于用在基于显示器的设备中。当将标准SDK 添加到一个操作系统内核镜像时,它会自动将与它相关的特性和依赖的特性一起添加进来。同时它还会添加一个注册表标识到内核镜像中,它标志着内核已经实现了标准SDK。这确保任何利用标准SDK 编写的应用程序都能运行在支持标准SDK 的WindowsCE .NET 平台上。
下面是标准 SDK 中所包含的组件:
AYG Shell
Authentication Services
Waveform Audio
Windows Internet Services (WinInet)
Gradient Fill Support
C++ Exception Handling (SEH)
Active Template Library (ATL)
Windows Networking API/Redirector
XML Core Services and Document Object Model
Printing
URL Moniker Services
SOAP Toolkit
Message Queuing
LDAP Client
Object Exchange Protocol
Component Services (COM and DCOM)