当前位置: 代码迷 >> 嵌入开发 >> 开始Windows Embedded Compact 7的第一个项目――虚拟机下的CEPC
  详细解决方案

开始Windows Embedded Compact 7的第一个项目――虚拟机下的CEPC

热度:1193   发布时间:2013-02-26 00:00:00.0
开始Windows Embedded Compact 7的第一个项目――虚拟机上的CEPC

开始Windows Embedded Compact 7的第一个项目――虚拟机上的CEPC
2011年04月14日
  欢迎下载试用新一代Windows Embedded CE(Compact 7):http://www.microsoft.com/windowsembedded/zh-cn/pro ducts/windowsce/default.mspx
  开始Windows Embedded Compact 7的第一个项目--虚拟机上的CEPC
  近日,微软发布了Windows Embedded Compact 7(以下简称WEC7)的Public Community Technology Preview(以下简称PCTP)版本。一直盛传的WinCE7是否就因此改名为WEC7还不得而知,至少目前开发者们称其为WinCE7,也是延续着对WinCE的期望。
  作为预览版本,PCTP已经提供了正式版的大部分内容,作为技术开发者,我们可以建立WEC7的项目来测试WEC7的各种新特性。
  作为第一个WEC7项目,最好的就是虚拟机上运行的CEPC(以下简称Virtual CEPC)了,因为我们的开发工具本来就是PC,所以不需要任何外部硬件,就可以开始玩转WEC7了。本文的目的就是帮助大家在自己的PC上建立起WEC7的虚拟机CEPC项目,开始自己的WEC7之旅。
  关于WEC7开发环境的安装,大家可以参考相关文章,这里就不再赘述。
  下面就开始我们第一次的WEC7之旅:
  一 系统要求
  对于Windows 7的用户而言,需要安装下列软件及环境:
  1. Windows 7专业版,Windows 7旗舰版或者Windows 7企业版(很遗憾Windows 7家庭高级版不在支持之列)
  2. Windows Virtual PC
  3. Visual Studio 2008
  4. Windows Embedded Compact 7
  Windows XP或者Windows Vista的用户需要:
  1. Windows XP专业版,Windows Vista商业版,Windows Vista旗舰版或者Windows Vista企业版
  2. Windows Virtual PC 2007
  3. Visual Studio 2008
  4. Windows Embedded Compact 7
  这里需要提示一点,就是如果要建立CEPC项目的话,在安装WEC7的时候一定要选上x86 Architecture的支持。
  这里就以Windows 7为平台,给大家介绍整个项目建立过程。在Windows XP及Windows Vista下面也是类似的。
  二 制作CEPC系统镜像
  要想在Virtual PC下面运行WEC7,首先你需要建立一个CEPC的项目来获得系统镜像。因此需要下面几个步骤
  1. 在Platform Builder下建立一个基础的项目
  2. 配置项目以符合Virtual CEPC的要求
  3. 添加删除一些系统组件
  4. 选择合适的Virtual PC键盘驱动
  5. 编译项目
  下面就对这些步骤一一做详细的介绍
  在Platform Builder下建立一个基础的项目:
  这个步骤对于使用过WinCE以前版本的开发者来说是非常轻松的工作。打开WEC7的开发环境Visual Studio 2008,选择"文件"菜单下新建一个项目。
  在"新建项目"页中,选择"Platform Builder 2008",然后在右边模板处,选择"OS Design",名字我们叫做VCEPC。
  
  配置项目以符合Virtual CEPC的要求:
  点击"OK"之后下一步到选择BSP的窗口,这里选择"Virtual PC: x86"。
  
  ]
  接下来就会出现设计模板页,在本页中你可以选择想要用在模拟器中的模板。这里我们选择Enterprise Web Pad作为Virtual CEPC的基础模板。
  在设计模板页里点开"PDA Device"目录,选择其中的"Enterprise Web Pad"。
  
  单击"Next"进入应用程序和媒体页,这里你可以选择任意你想要加入到项目中来的媒体组件及应用程序。
  
  为了演示,这里我们直接点击"Next"。随后进入到网路与通信设置页,这里我们选上"Wired Local Area Network",以便以后我们通过虚拟网卡与本地PC连接。
  
  选择之后,点击"Next",我们就来到了新建项目的最后一步,这里有一个选项可以让你在完成配置之后立即编译这个项目。因为后面我们还需要做一些修改,所以这里把这个选项留空。
  
  到这里,项目的新建工作就全部完成了。点击"Finish"。
  这时根据你选择的系统组件,可能会弹出来一个安全警告窗口,只需要选择"Acknowledge"即可。
  添加删除一些系统组件:
  下面你可以根据自己的需要添加其他一些想要的系统组件。
  比如,大家对WEC7的Silverlight for Windows Embedded(以下简称SWE)都很感兴趣,我们下面就添加SWE的支持到我们的项目里来。
  在项目的开发环境中选择"Catalog Items View"配置窗口。(如果你的开发环境默认没有显示Catalog Items View,你可以在"View"菜单下选择"Other Windows",然后选择"Catalog Items View")然后打开"Core OS"->"Windows Embedded Compact" -> "Shell and User Interface" -> "Silverlight for Windows Embedded"。然后勾选"Silverlight for Windows Embedded"。成功之后选择"File"->"Save All"来保存修改。
  
  选择合适的Virtual PC键盘驱动:
  下面我们还需要将键盘驱动加入到项目中来。这里根据你使用的Virtual PC版本不同,设置略有不同。
  如同前面添加SWE支持的方法,在"Catalog Items View"中找到如下路径"BSP"->"Virtual PC"-> "Device Drivers"->"Keyboard"。
  如果你使用的是Virtual PC 2007,选择"VCEPC Keyboard driver:VPC2007";如果使用Windows Virtual PC,就选择"VCEPC Keyboard driver:WIN7VPC"。我们这里使用的环境是Windows 7配合Virtual PC,所以我们选择后者。
  
  添加好组件之后,选择保存。
  编译项目:
  在开发环境的"Build"菜单中选择"Build Solution"就可以开始编译过程了。
  在"Output"窗口中你可以看到编译过程中产生的信息。整个编译过程还是需要花费一些时间的,具体取决于你的PC的速度。
  如果编译过程中出现错误,可以仔细对比前面的设置步骤并检查自己的系统环境是否符合需求,另外关闭杀毒软件也许可以解决一些编译问题。
  编译好之后,你会在WEC7的安装目录下的如下路径找到系统镜像文件:"你的WEC7安装目录\OSDesigns\VCEPC\VCEPC\RelDir\ VirtualPC_x86_Release\NK.bin"。随后将介绍如何把这个VCEPC系统镜像在Virtual PC中加载起来。
  三 配置Virtual PC(以下简称VPC)
  在获得了CEPC的镜像之后,我们需要配置一下VPC,新建一个虚拟机以便运行CEPC的镜像。
  首先运行VPC,这时会打开一个叫做"虚拟机"的文件夹。这个是Windows 7中不同的一点,VPC当作一个系统补丁安装,并且管理上不是一个单独的应用程序了。
  在这个文件夹中,点击上方的"创建虚拟机"按钮,会弹出来"创建虚拟机"的向导窗口,这里选择好虚拟机文件夹位置,名称我们叫做"VCEPC"。
  
  下一步进入到内存和网络配置。这里可以指定使用的RAM大小,我们使用默认的512MB。
  
  点击下一步,将会进入到创建虚拟硬盘的窗口,这里,WEC7已经给我们准备好了一个虚拟硬盘文件,所以我们选择"使用现有虚拟硬盘",然后位置为"你的WEC7安装目录\platform\VirtualPC\VM\hd0_sample.vhd"。
  
  点击"创建"之后,你会在"虚拟机"文件夹下看到一个叫做"VCEPC.vmcx"的文件,双击启动虚拟机,你会看到启动程序如下:
  
  在5秒之内按下键盘空格键会进入到启动菜单中:
  
  四 启动CEPC
  1 配置Platform Builder
  在配置好VPC之后,我们返回来看Platform Builder(以下简称PB)中的配置。系统镜像需要传输到VPC中才能运行,这种传输我们使用虚拟网卡的技术,通过网络(用过以前WinCE版本的朋友应该很清楚,过程类似于EBoot下载镜像的过程)把镜像传输给VPC,然后由VPC启动。所以前面VPC中使用的虚拟硬盘中,实际上已经包含了类似EBoot一样的启动代码。
  在了解原理之后,下面的配置过程对于用过EBoot的朋友会非常简单。我们需要建立网络传输,首先设置一下PB。
  在Visual Studio 2008中,选择"Target"菜单,然后选择"Connectivity Options",然后选择"Add Device"。这时会弹出"Target Device Connectivity Options"对话框,在"New target device name"里输入VCEPC,在"Associated OS Design/SDK"中选择"Windows CE",然后点击"Add"。
  在"Target Device Connectivity Options"下有几个选项需要我们注意:"Kernel Download","Kernel Transport",以及" Kernel Debugger"。在"Target Device"下,选择你的目标设备名称,这里是VCEPC。"Kernel Download"中选择"Ethernet",然后点击"Settings"按钮,会打开"Ethernet Download Settings"对话框。目前这个对话框还是空的,因为还没有找到接收传输的设备,我们就停在这里,继续操作我们的VPC。
  2 设置VPC启动参数
  刚才我们成功的在VPC中进入到启动菜单,这个菜单大家一定眼熟,因为看起来很像EBoot的菜单。实际上这个就是x86下的EBoot。
  菜单项如下:
  [1] Show Current Settings  
  [2] Select Boot Source  
  [3] Select KITL Device  
  [4] Network Settings  
  [5] Display Settings
  [6] Debug Port Settings  
  [7] Save Settings  
  [0] Exit and Continue
  我们首选需要配置启动源,所以选择第二项"[2] Select Boot Source",在VPC的窗口下使用键盘输入"2",进入Select Boot Source配置。
  这里会有两个选项
  [1] Boot Drive  
  [2] DEC21140 at PCI bus 0 dev 10 fnc 0
  这里我们选择"2"。实际上DEC21140 at PCI bus 0 dev 10 fnc 0是一个虚拟网卡,用来共享你的物理网卡,从而与你的PC通信。选择好之后会有如下提示:
  Boot Device is set to DEC21140 at PCI bus 0 dev 10 fnc 0
  随后跳转到主菜单。
  主菜单下,我们可以选择"Show Current Settings"来检查当前的配置,你会看到类似下面的内容:
  Boot source: DEC21140 at PCI bus 0 dev 10 fnc 0  
  KITL device: DEC21140 at PCI bus 0 dev 10 fnc 0  
  KITL config: enabled, interrupt mode, VMINI enabled  
  DHCP: enabled  
  Display: 640 X 480 X 32 / Full Screen
  Debug Port: COM1 38400 baud
  一般来说这里就可以了。但是我们需要注意一点,就是DHCP的问题。虚拟网卡会尝试使用DHCP来获得IP地址,如果你的路由器没有开启DHCP功能,它是拿不到IP地址的,这时候我们可以手动指定一个IP地址。在主菜单中选择"Network Settings",随后选择"Set IP Address",然后根据提示,输入你想要设置的IP地址,注意要与你的PC的IP地址保持在同一网段。比如你的PC的IP地址为192.168.1.2,那么你可以设置VPC的IP地址为192.168.1.3。然后选择"Enable/disable DHCP",这时提示是否disable DHCP,输入y确定。
  回到主菜单之后,我们可以再次进入"Show Current Settings",这时我们就可以看到刚才设置的IP地址了。随后在主菜单中选择"Save Settings"来保存我们的设置。
  3 启动CEPC镜像
  在主菜单中,选择"Exit and Continue",这时会进入等待引导下载镜像的过程,提示信息如下:
  Send BOOTME Message (device name PC-0003FF9D5B30, attempt 1)  
  Send BOOTME Message (device name PC-0003FF9D5B30, attempt 2)
  这里就是在发送BOOTME信息,"PC-0003FF9D5B30"就是你的设备名。
  这时我们返回到刚才PB的"Ethernet Download Settings"对话框。现在我们就会在"Active target devices"列表中看到我们的设备名称(这里就是"PC-0003FF9D5B30")及IP地址了。选择我们的设备名称,然后单击"Apply"确定。关闭"Target Device Connectivity"对话框。
  下面就可以下载系统镜像到VPC当中了。
  在Visual Studio 2008中,在"Device"下拉框中,选择我们的设备配置名,这里就是"VCEPC"。然后在"Target"菜单中选择"Attach Device",这时我们会看到"Device Status"窗口,显示传输镜像的进度及状态。
  在VPC端,我们也可以看到,传出过程的进度,在传输完成后,我们就可以进入到WEC7的界面中了。
  
  现在,VCEPC的创建及使用过程就全部结束了。大家可以在自己的PC上实践WEC7,而不用依赖与其他的硬件,如开发板等。同时也可以在PC上测试自己的应用程序,特别是大家感兴趣的Silverlight等。
  对于使用Windows XP配合Virtual PC 2007的朋友,就是配置Virtual PC 2007的过程不一样而已,总体思路是一样的。
  好了,现在就马上行动,建立自己的第一个WEC7项目,体验一下WEC7吧!
  参考文献:
  1. Mark McLemore,《Getting Started with Virtual CEPC》,2010-5
  欢迎下载试用新一代Windows Embedded CE(Compact 7):http://www.microsoft.com/windowsembedded/zh-cn/pro ducts/windowsce/default.mspx
  相关解决方案