Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1674768
  • 博文数量: 311
  • 博客积分: 7778
  • 博客等级: 少将
  • 技术积分: 4186
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-09 19:59
个人简介

蓝点工坊(http://www.bluedrum.cn) 创始人,App和嵌入式产品开发。同时也做相应培训和外包工作。 详细介绍 http://pan.baidu.com/s/1y2g88

文章存档

2012年(3)

2011年(115)

2010年(170)

2009年(23)

分类: 嵌入式

2010-03-27 20:46:41

Andrew Huang

 

 

提要:

 

很多时候使用WinCE并不需要真实的硬件设备,有时用WinCE模拟器就够了.比如去演示应用,调试WinCE应用程序.用模拟器可能比真实硬件还要方便.而且现在WinCE上有很多游戏,很多人把在PC上把WinCE模拟器当成一台游戏机模拟器来用.现在拥有笔记本的人比拥有GPS定位设备更多.不少人直接开车直接使用笔记本的WinCE模拟器上运行GPS地图程序,流行一时.

本节内容如下

l         WinCE模拟器的原理和调用

l         常见模拟器的使用(PPC2003,Win Mobile 5.0,Win Mobile 6.0)

l         改变模拟设备的外观(Skin).

l         模拟器与其它设备的通讯.

 

l         在虚拟机上使用WinCE

 

 

WinCE 模拟器的原理和调用

 

      如果安装VS.2005 ,其中里面就直接带了模拟器的启动程序.DeviceEmulter 1.0.但是安装VS 2005太大了.而且很多人只是需要使用一个WinCE模拟器来运行程序,并不需要做相应开发.这种情况可以单独安装很小的模拟器启动程序.可以从MS网站下载vs_emulator.exe,然后安装(如果安装VS 2005就不需要这一步了).

安装后,在对应目录下会有如下程序.

 

启动模拟器的方法有两种.

一种是用DeviceEmulator.exe调用相应的内核映像文件.PPC_2003_SE_CHS_ARMv4.bin ,就是PPC2003 for ARMV4中文版的映像文件.这种方法可以定义很多参数来调试模拟器运行时各种选项.这方法启动速度略慢,但可以控制较多选项.

二种是用dvcmumanager.exe打开以前运行映像文件保存的运行状态文件直接恢复运行.这一种启动速度快,但是只能按原来设置参数运行,无法调整.

 

DeviceEmulator.exe参数说明

模拟器可以能通过命令行设置参数,也能进入模拟器后在configure窗口做同样的配置.一般做法是写一个批处理文件,写上相应参数,直接调用.

l         /memsize size

设置仿真的 RAM 大小,其中 size MB 为单位。有效值为从 64 256(含)。如果未指定有效值,则 size 默认为 64

l         /s filename

指定保存状态文件。如果没有指定任何 内核映像文件,则必须有 /s filename,仿真程序将从指定的保存状态文件还原。当该仿真程序退出时,它会将新状态保存到保存状态文件的最前面。

如果指定了 内核映像文件名但没有 /s filename,仿真程序会从内核映像文件冷启动,并禁用保存状态。

如果指定了 内核映像文件名和 /s filename,则仿真程序从 内核映像冷启动,并在退出时启用保存状态,将状态保存到指定的文件名。

 

l         /c

创建并显示一个控制台窗口以显示 Windows CE 调试串行端口的输出内容,用户键入的击键正是传送到此控制台。该技术对于从 Platform Builder 观察调试输出和下载内核映像非常有用。

 以下是c参数启动效果

 

l         /n [macaddress]
启用 CS8900 网络适配器,其中可选的 macaddress 是一个十二位数字的十六进制数,指定卡将绑定到哪个主机适配器

l         /p [macaddress]
启用 NE2000 PCMCIA 网络适配器,其中可选的 macaddress 是一个十二位数字的十六进制数,指定卡将绑定到哪个主机适配器。


l         /r ROM_address
指定 ROM 文件基址,其中 ROM_address 可以是十六进制数或十进制数。


l         /rotate angle
按度数顺时针旋转显示屏,其中 angle 可以是 090180 270。允许使用其他整数值,但是要四舍五入到最接近于 90 的整数倍数的值。

 

l         /flash [flash_file_name]
启用闪存仿真,其中的可选 flash_file_name 指定要用作闪存存储的文件的名称。

 

l         /sharedfolder  directoryname
将一个目录作为共享文件夹装入,其中 directoryname Windows 目录。该目录被作为在Windows作为“/Storage File”装入,就行为就跟一个SD卡差不多。


l         /skin skin_file_name
加载指定的外观文件,为一个xml格式文件。用于修改设备外观

 

l         /video xx
指定 LCD 窗口的屏幕大小和位深度,其中 widthheight bit-depth 为十进制值。例如:640x480x16。注意用字母x来表乘数

 

l         /u0 serialport

l         /u1 serialport

l         /u2 serialport


WinCE
串行端口 0,1,2(仿真程序 COM1,COM2,COM3)映射到宿主操作系统的真实串口上,serialport指串口设备名,COM1,COM5.

 

l         /z
将显示窗口(外观和 LCD 窗口)放大为正常大小的 2

 

PPC2003的启动参数

"C:\Program Files\Microsoft Device Emulator\1.0\DeviceEmulator.exe" "PPC_2003_SE_CHS_ARMv4.bin" /memsize 256 /s PPC.dess /video 240x320x16

表示使用PPC_2003_SE_CHS_ARMv4的内核映象文件,内存是256M ,设备状态退出后保存在PPC.dess文件当中.LCD设置为240*320,16位像素

 

Windows Mobile 5启动参数

C:\Program Files\Microsoft Device Emulator\1.0\DeviceEmulator.exe" " PPC_WM5.bin" /memsize 256 /s PPC.dess /video 240x320x16

 

 

常见模拟器的使用

一般常见的模拟器有PPC 2003 for ARMV4(Pocekt PC 2003),Windows Mobile 5.Windows Mobile6 等模拟器.其余映像文件来源于

电脑上运行的PPC2003WM5WM6三款中文系统模拟器(详细安装方法) 这个贴子的收集.

使用以下模拟器前提条件,要求安装了Microsfot Device Emulator 1.0以上版本,如果没有安装,请运行vs_emulator.exe进行安装.并且假设安装在C:/program files目录下,如果不是,请修改启动批处理文件的路径.

 

 

PPC2003的运行.

 这里PPC_2003_SE_CHS_ARMv4.binARM的内核映像文件,直接双击运行2003.bat即可启动PPC2003的界面

 

这是启动PPC2003的界面

 

Window Mobile 5的运行

这里的PPC_WM5.binWindows Mobile 5的内核印象文件,直接双击运行wm5.bat即可启动WM5.

这是启动WM5的界面

Window Mobile 6的运行

这一模拟器采用状态文件恢复运行.因此跟前面两种模拟器运行不一样,需要模拟设备管理

器恢复运行, 但是好象vs 2005自带模拟器运行不成功,需要使用自带几个组件注册后,才能用还原.双击运行加载.bat”注册相应组件,然后选择启动,(其实就是模拟设备管理器)

 

 

直接运行.选择文件中的还原映像

 

恢复后的WM6界面

 

 

 

模拟器与主机通讯

模拟器跟一个真实设备相差无几.从宿主的操作系统上传输数据方法有好几种.

l         配置共享目录,双方通过共享目录交换文件,这是最简单最方便手段

l         ActiveSync连接到模拟器,使用ActiveSync传输文件,一般用于开发.

l         利用把虚拟网卡绑定在宿主机真实网卡上,这样模拟器可以通过网络跟其它主机通讯

l         利用ActiveSyncDMA端口接入Internet

 

配置共享目录,用共享目录模拟SD

   WinCE的模拟器支持把宿主操作系统上某一个目录虚拟成一个SD卡设备,这样向这个目录拷贝文件就是等于向模拟器的SD卡拷贝文件,这一机制非常方便,有效.大部分应用用这一方法即可测试.

 

  共享目录配置,在模拟器的文件à配置à常规(页标签)à共享文件夹

 

如果成功,会在资源管理器看一个SD卡的盘符,内容就是共享目录的内容

 

执行(开始菜单)à程序à资源管理器,

在资源管理器打开 我的设备 ,会出现SD的图标,这个内容实际上是共享目录

 

  

 

 

在虚拟机上使用WinCE

 

虚拟机与模拟器是两种不同软件,模拟器通常用来模拟某种特殊硬件,一般用于嵌入式开发.而虚拟机则是模拟一种虚拟PC机来,通常CPUX86.最有名的虚拟软件是VMWare,微软也有自己的虚拟机软件 Virtual PC 2007.理论是任何安装在X86的操作系统都安装在虚拟机上.VMWare就是如此,可以安装Linux,FreeBSD,Windows,当然也在安装WinCE for X86.版本,VPC早期版本也是如此,现在MS限制操作系统安装.只能安装MS一家出品的操作系统.

  在虚拟机上使用嵌入式操作系统,WinCE之类,并无太大优势了.很多WinCE应用并不是针对X86.而且虚拟机最大方便是可以象真实机器一样使用做网络,比如在WinCE,只要简单配置一下就即可上网.完全没有WinCE模拟器上复杂的配置.

  缺点更明显,比如需要安装一个庞大的虚拟机软件,他控制很多当前操作系统的底层.对于WinCE,最方便的传输文件和调试手段是ActiveSync.很奇怪,MSActiveSync联接中,只用串口和USB,完全不用速度最快的以太网口,我不太而知这是一种什么样的商业策略.ActiveSync早期3.x版本,可以通过手工安装以太网代理来使用ActiveSync用以太网联接.在高版本已经完全没有这个可能.因此虚拟机来运行WinCE只是一种演示的补充,在开发上没太大帮助.

  因为本人也从事嵌入Linux教学.机器上一般都安装了VMWare.因此.这里采用VMWare来运行WinCE 5.0/6.0两个版本.

如果熟悉VMWare ,可以很快的把WinCE 运行起来

 

VMWare 运行WinCE 5.0

l         打开虚拟机映像

l         WinCE 5运行界面

 

最后总结

 

在日常开发和使用中,用得最多就是WM5的虚拟机。它跟很多ARM开发板的WINCE5都是兼容的。

 

因此你最好在你的机器上准备如下开发环境,后面课程大部分用这个环境来讲解。

  ActiveSync 4.5

  DeviceEmulator 1.1

  WM 5.0 官方虚拟机内核

阅读(4939) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~