用模拟器加载基于ARM平台的WinCE6.0 内核(NK.bin)

虽然公司在一年以前就开始做基于WinCE4.2系统的触摸屏,但是作为侧重应用层面开发的我,对WinCE内核相关知识可以说是一知半解。

WinCE6.0早在06年11月份就已经正式发布,但直到今天才开始研究WinCE6.0系统(其实早几个月的时候就从马宁那里获得了PB6.0安装程序,但是比较遗憾的是在前几天才把PB6.0装上)。WinCE6.0的100%开放源代码行动还是比较吸引人的,此外又作为VS2005的插件出现,对喜欢VS005开发环境的朋友来说,着实是一个福音。
PB6.0安装程序有3G多(SP1要小的多,才50多M),幸好我安装时仅选择了Arm平台相关的选项,否则真不知道要占用我多少磁盘空间呢!
闲言少叙,第一步我们就用PB6.0定制一个WinCE6.0内核。
(这方面的内容,幸好有马宁同志不辞辛苦的耕耘,我们可以不劳而获,直接看他blog上《Windows Embedded CE 6.0开发初体验(1~5)》系列文章即可,不过要选择的BSP是Device Emulator:ARMV4I,相关链接如下:http://blog.csdn.net/aawolf/archive/2007/12/19/1953448.aspx)。
第二步就是我们今天要说的重点了,以前PB5.0和PB4.x都有一个基于X86架构的模拟器。在定制BSP时,需要选择EMULATOR:X86定制的内核才能加载到模拟器之中。在PB6.0中在这一方面有了很大的改进,用“Device Emulator:ARMV4I”取代了“EMULATOR:X86”,也就是说现在的模拟器直接可以加载基于ARM平台的NK了,毕竟目前大部分嵌入式设备都是基于ARM平台的,这种改进还是非常有益的。

模拟器需要从网上下载,目前最新版本是V2.0。

Microsoft Device Emulator 2.0 – 独立版
对基于 ARM 的设备的设备仿真程序来说,Microsoft Device Emulator 2.0 是第二个公开发行的版本。本仿真程序还将与 Windows Embedded CE 6.0 的 Adaptation Kit (AK) 版一同发行。

Device Emulator 2.0 版与 Visual Studio 2005 随附的该仿真程序的 1.0 版包含相同的可执行文件和 DLL。新版的仿真程序对性能进行了升级并新增了一些功能。本次安装将取代随 Visual Studio 2005 一同安装的仿真程序。
 

注意:在 Visual Studio 2005 中进行面向 Windows Embedded CE 6.0 平台的应用程序开发时需要使用 Device Emulator V2.0。此外,如果您的系统运行的是 Windows Vista,也需要使用本仿真程序。

 
下载链接如下:http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=dd567053-f231-4a64-a648-fea5e7061303
   
 
安装完模拟器后,接下来我们要配置一下相关选项:
单击“Target”菜单下Connectivity Options选择,弹出如下配置对话框
用模拟器加载基于ARM平台的WinCE6.0 内核(NK.bin)

Download和Transport都选择“Device Emulator(DMA)”选项,此外如果Debugger选None的话,记得在工程属性中一定取消下图中的选项,否则模拟器一直黑屏。
用模拟器加载基于ARM平台的WinCE6.0 内核(NK.bin)

单击配置对话框的“Setings”按钮弹出仿真程序属性配置对话框,如下图。
用模拟器加载基于ARM平台的WinCE6.0 内核(NK.bin)

 
分辨率我设置为640*480。
用模拟器加载基于ARM平台的WinCE6.0 内核(NK.bin)

串口最好映射,并且勾选“为串行端口1创建…”选项,这样在启动模拟器的时候会弹出如下窗体,这样在模拟器黑屏的时候你能获知是什么原因。
用模拟器加载基于ARM平台的WinCE6.0 内核(NK.bin)

内核编译完毕后,我们单击“Target”菜单下的Attach Device选项,让模拟器加载NK.bin。
用模拟器加载基于ARM平台的WinCE6.0 内核(NK.bin)
用模拟器加载基于ARM平台的WinCE6.0 内核(NK.bin)

 
呵呵,成功了!

上一篇:对比Windows 8模拟器(Simulator)和Windows Phone仿真器(Emulator)


下一篇:Windows Phone 8模拟器中拨打电话,报错误异常“System.UnauthorizedAccessException”类System.Windows.ni.dll的解决办法