为自己量身定做的Windows CE 5.0 ARM中文模拟器

时间:2011-09-04

  本文对 Microsoft DeviceEmulatorBSP中Using the CE DeviceEmulator.rtf文件做了说明,并对该文件做了相应补充,旨在定制基于ARM4I平台Visual Studio 2005环境中文模拟器,建立用于 Platform Builder 5.0+Visual Studio 2005嵌入式Windows CE 5.0开发环境。

  一、生成OS

  1. 安装Windows CE 5.0,装完之后装DeviceEmulatorBSP.msi,这是ARMV4I模拟器的BSP。

  2. 运行Platform Builder,新建一个Platform,给你的新Platform取一个名字,我这里取为MyCEEmu。BSP选择Microsoft DeviceEmulator:ARMV4I,Design Template选择Mobile Handheld,Application & Media随边你自己,Networking & Communications只选择Local Area Network(LAN)->Wired Local Area Network,剩下的都删掉。

  3. 添加网卡。在Catalog View的Device Drivers->Networking->Local Area Networking (LAN) devices目录下,把NE2000-compatible(PCMCIA car)添加进来。

  4. 如果要开发托管程序,添加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. 添加闪存支持。有三个部件:SMFlash,Partition Driver和FAT。

    先转到Catalog View:

  SMFlash在BSP->Microsoft Device Emulator->Storage Drivers->MSFlash Drivers->SmartMedia NAND Flash Driver (SMFLASH),

  Partition Driver在Core OS->Windows CE Devices->File Systems and Data Store-> Storage Manager->Partition Driver

  FAT在Core OS->Windows CE Devices->File Systems and Data Store->Storage Manager->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选项卡,用来添加你想要的语言支持,可改可不改。

  8. 视情况添加其他所需的组件。

  9. BuildOS->Sysgen。

  二、生成SDK

  1. 运行SDK Wizard(Platform->SDK->New SDK),填写必要的信息之后,把支持的开发工具都勾上,完成。下面是配置SDK(选择Platform->SDK->Configure SDK)。

  2. 打开ExportSdk.sdkcfg文件,这是一个XML格式的文本文件,找到这两行:

  <PropertyBag NAME="DeviceEmulation">

  </PropertyBag>

  把这两行替换为如下的片断:

  1

  MyCEEmu

  240

  320

  16

  128

  Emulation k.bin

  1

  ARMV4I

  96

  96

  0

  1

  1

  1

  C:\WINCE500\MyCEEmu\ReleaseImage

  Emulation

  0

  3. 设定变量。上面替换的代码中有几个变量需要设定,分别是:

  1) ImageName:这是程序员在Visual Studio IDE里所看到的名字;

  2) VMID:一个GUID,可以用GuidGen.exe来生成一个;

  3) Height/Width:模拟器屏幕的宽高;

  4) BitDepth:颜色深度;

  5) Memory:分配给模拟器的RAM大小;

  6) DPIX/DPIY:屏幕DPI;

  7) Source:这是一个目录,包含编译生成的NK.bin。建议在%_WINCEROOT%下新建一个目录,专门用于存放NK.bin。

   修改完成后保存。

  3. 生成SDK。Platform->SDK->Build SDK。一切顺利的话应该可以在当前工程目录的SDK目录下找到打包成msi文件的SDK安装包。

  三、配置Visual Studio 2005

  1. 先安装生成好的SDK。运行Visual Studio 2005,选择菜单“工具->选项”,打开选项设置对话框,从左边的树型列表中选择“设备工具->设备”,右边的下拉列表框拉到底可以看到 “MyCEEmu”,这就是我们刚刚生成的那个Platform。下面的设备列表里有两项,双击MyCEEmu,设定传输为DMA传输,再点击“仿真器选 项”,在“显示”选项卡里设定好模拟器屏幕尺寸,颜色深度等,全部保存。

  2. 新建一个智能设备项目,向导第2步选择平台的时候用我们的MyCEEmu替换Pocket PC 2003,完成。然后按F5运行程序。

  在Windows CE增加自定义中断处理

  ISQ --> Interrupt ID(逻辑中断号) --> Event对象。

  当中断发生时,ISR(中断服务例程)返回该中断号对应的逻辑中断号,然后尽可能快地返回;随后CE就set该逻辑中断号对应的Event对象(如果有的话),以唤醒在该Event等待的IST(中断服务线程),大部分工作都是由IST来完成。一般来说IST是存在驱动程序里,单其实放在普通的应用程序里也可以,尤其是对应只有一个应用程序使用的特殊硬件更方便。因为对应CE来说其实驱动程序也只是一个普通的DLL,也是运行在用户空间。

  我的理解:这种方法是因为pb5缺省只有基于x86的emulator bsp,生成的x86指令模拟器bin文件是无法运行amv4i指令的程序的。通过安装动态翻译并执行amv4i的emulator bsp并生成amv4i指令模拟器bin文件后,后vs2005而不是evc4(vs2005才有device emulator)调试基于amv4i的应用程序。而真实设备的nk.bin我想应该用pb5的kitl。



  
上一篇:用C语言编写的Linux应用程序
下一篇:WinCE5.0与4.0比较

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料