平台建立器:Platform Builder 5.0
模拟器:Windows CE 5.0(ARM V4I)Emulator
第一步 定制模拟器镜像文件
1.在微软官网下载DeviceEmulatorBSP.msi ,这是一个ARMV4I-based emulator BSP for Windows CE 5.0 ,用这个BSP可以定制基于Visual Studio 2005/2008的SDK
2.安装这个BSP,安装完成后在WINCE500/PLATFORM/Deviceemulator目录下会有一个Using the CE DeviceEmulator.rtf文件,其中详细介绍了如何创建带模拟器的SDK
3.运行Platform Builder 5.0,新建一个Platform,可以取名为Emulator,BSP选择Microsoft DeviceEmulator:ARMV4I ,Design Template选择Mobile Handheld,Application & Media随意,Networking & Communications只选择Local Area Network(LAN)->Wired Local Area Network,其余都去掉。最后完成向导。
4.如果要开发托管程序(基于.Net Compact Framework),添加Catalog View的Core OS->Windows CE Devices->Applications – End User->CAB File Installer/Uninstaller。
5.添加ActiveSync(可选),在Catalog View的Core OS->Windows CE Devices->Applications – End User目录下。
6.为了支持emulated flash memory,可依次可添加SmartMedia NAND flash driver (SMFlash),Partition Driver,FAT File System
7.打开菜单Platform->Setting,这里有三个地方要设置:
1) Build Options选项卡下,去掉Enable CE Target Control Support和Enable KITL;(如果不去掉可能会导致模拟器黑屏)
2) Environment选项卡,添加环境变量CE_MODULES_SERIAL=1,这是用来将DMA添加进来;(这十分重要)
3) Locale选项卡,用来添加你想要的语言支持,可改可不改。如果要是Windows CE Emulator支持中文,最好使默认语言为中文。
8.视情况添加其他所需的组件。
9.BuildOS->Sysgen。这个过程大约要持续一二十分钟左右,最终生成nk.bin ,默认情况生成的映像文件在C:\WINCE500\PBWorkspaces\Emulator\RelDir\DeviceEmulator_ARMV4I_Release,其中Emulator就是Platform Name
第二步 导出SDK
10.运行SDK Wizard(Platform->SDK->New SDK),填写必要的信息之后,在选择支持的开发工具时,如果选择Embedded Visual C++ 4.0 Support,则生成的SDK不仅可以支持EVC,也可以支持Visual Studio 2005/2008的C++开发,如果选择.Net Compact Framework,则生成的SDK支持Visual Studio 2005/2008的C#开发,即托管代码
11.选择Build OS->Open Release Directory,在命令行输入%_projectroot%\..\..\ExportSdk.sdkcfg,选择记事本可以打开这个文件,这个文件是一个XML格式的配置文件。
12.找到<PropertyBag NAME="DeviceEmulation">,</PropertyBag>,用以下文本替换:
<PropertyBag NAME="DeviceEmulation">
<Property NAME="Default Image">1</Property>
<PropertyBag NAME="1">
<Property NAME="ImageName">My Emulator</Property>
<Property NAME="VMID">{6CB9C6E3-E576-4580-BC1E-ADED62B97FFB}</Property>
<Property NAME="Default Skin"/>
<Property NAME="Height">400</Property>
<Property NAME="Width">240</Property>
<Property NAME="BitDepth">16</Property>
<Property NAME="Memory">128</Property>
<Property NAME="Bin Dest">Emulator/NK.bin</Property>
<Property NAME="Fixed Screen">1</Property>
<Property NAME="CpuName">ARMV4I</Property>
<Property NAME="DPIX">96</Property>
<Property NAME="DPIY">96</Property>
<Property NAME="SupportRotation">0</Property>
<Property NAME="Enabled">1</Property>
<Property NAME="Bin Path"></Property>
<Property NAME="Ethernet">1</Property>
<Property NAME="Ports">1</Property>
<Property NAME="AdditionalParameters">
</Property>
<PropertyBag NAME="Skins"/>
</PropertyBag>
</PropertyBag>
<PropertyBag NAME="Added Files">
<PropertyBag NAME="{3B388597-0924-4102-ADFA-2519D2C3E11B}">
<Property NAME="Source">C:/WINCE500/PBWorkspaces/Emulator/Addfile</Property>
<Property NAME="Destination">Emulation</Property>
<Property NAME="Subfolders">0</Property>
</PropertyBag>
</PropertyBag>
其中C:/WINCE500/PBWorkspaces/Emulator/Addfile此路径是自己建立的,其中存放Emulator的nk.bin(此处仅放这一文件,否则生成SDK时会将这一目录下的内容全部压缩进去)
13.Platform->SDK->Build SDK 等待完成。默认环境下,在C:\WINCE500\PBWorkspaces\Emulator\SDK目录可找到生成的Emulator_SDK.msi。
14.点击安装,完成SDK安装。
第三步 在Visual Studio 2008上配置模拟器(即仿真程序)
15.选择菜单“工具->选项”,打开选项设置对话框,从左边的树型列表中选择“设备工具->设备”,右边的下拉列表框拉到底可以看到“My Emulator”,这就是XML配置文件中的那个Image Name。选择该项,并点击右边的“属性”选项,设定传输为DMA传输,再点击“仿真器选项”,在“显示”选项卡里设定好模拟器屏幕尺寸,颜色深度等,全部保存。
16.点击菜单栏“工具”->“设备仿真器管理器”,在Emulator Platform下,有一个My Emulator,点击右键,选择“连接”,不出意外,即可成功运行仿真器。
17. 新建一个基于Visual C++的智能设备项目,向导第2步选择平台的时候用我们的My Emulator,完成。
致谢
本文档参考了以下Blog:
http://blog.youkuaiyun.com/veabol/article/details/4520154