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

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

虽然公司在一年以前就开始做基于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选择,弹出如下配置对话框
image.png

Download和Transport都选择“Device Emulator(DMA)”选项,此外如果Debugger选None的话,记得在工程属性中一定取消下图中的选项,否则模拟器一直黑屏。
image.png

单击配置对话框的“Setings”按钮弹出仿真程序属性配置对话框,如下图。
image.png

 
分辨率我设置为640*480。
image.png

串口最好映射,并且勾选“为串行端口1创建…”选项,这样在启动模拟器的时候会弹出如下窗体,这样在模拟器黑屏的时候你能获知是什么原因。
image.png

内核编译完毕后,我们单击“Target”菜单下的Attach Device选项,让模拟器加载NK.bin。
image.png
image.png

 
呵呵,成功了!

相关文章
|
2月前
|
数据采集 监控 安全
精简高效与安全兼备:ARM32与MCU32平台上的信息协议设计新思路
精简高效与安全兼备:ARM32与MCU32平台上的信息协议设计新思路
232 1
|
2月前
|
存储 人工智能 达摩院
FunASR 语音大模型在 Arm Neoverse 平台上的优化实践
Arm 架构的服务器通常具备低功耗的特性,能带来更优异的能效比。相比于传统的 x86 架构服务器,Arm 服务器在相同功耗下能够提供更高的性能。这对于大模型推理任务来说尤为重要,因为大模型通常需要大量的计算资源,而能效比高的 Arm 架构服务器可以提供更好的性能和效率。
|
2月前
|
缓存 Linux
ARM平台内存和cache对xenomai实时性的影响
ARM平台内存和cache对xenomai实时性的影响
71 0
ARM平台内存和cache对xenomai实时性的影响
|
2月前
|
安全 Linux 数据安全/隐私保护
【SPI协议】了解ARM平台上的SPI的基本应用
【SPI协议】了解ARM平台上的SPI的基本应用
429 0
|
2月前
|
NoSQL Linux 开发工具
百度搜索:蓝易云【VSCode+GDB+Qemu调试ARM64 linux内核教程。】
请注意,根据你的具体环境和需求,上述步骤可能会有所调整和修改。建议参考相关文档和资源,以获得更详细的配置和调试指南。
61 0
|
11月前
|
编译器 vr&ar C语言
如何保护自己知识产权,建立代码护城河——建立自己的静态库,x86和arm平台的实例讲解
如何保护自己知识产权,建立代码护城河——建立自己的静态库,x86和arm平台的实例讲解
281 0
|
弹性计算 Kubernetes 关系型数据库
实践教程之如何在ARM平台部署PolarDB-X
PolarDB-X 为了方便用户体验,提供了免费的实验环境,您可以在实验环境里体验 PolarDB-X 的安装部署和各种内核特性。除了免费的实验,PolarDB-X 也提供免费的视频课程,手把手教你玩转 PolarDB-X 分布式数据库。
|
关系型数据库 MySQL
|
算法 物联网 测试技术
开发一个arm固件加载基址定位器
最近入坑iot,涉及很多芯片固件的逆向。但是这些固件很多时候都不是标准二进制格式,也就是说丢进ida,识别不出架构和指令集。架构和指令集可以查芯片的文档,但是加载基址还没法确定,这个靠自己去定位,再配置ida。人工做这个工作太累,而我又是懒狗,所以自动化这一过程不香吗?