第一步,安装VS2k5,安装完成后要安装VS2k5 SP1补丁(KB926601),否则后面的Platform Builder SP1无法安装。
第二步,安装Windows Embedded CE 6.0,官方下载地址为:
(
Windows Embedded CE 6.0 下载地址和序列号
安装起来特麻烦
程序下载地址
http://download.microsoft.com/download/a/0/9/a09e587c-4ff9-4a58-a854-56fe50b862b2/WindowsEmbedded CE 6.0.msi
序列号:
Your product key(s) for installation are:
* Windows Embedded CE 6.0 (plug-in for Visual Studio 2005):
H8RQR-MMKRP-XFRFC-9HKGJ-82R6J
* If you are also evaluating Visual Studio 2005, Visual Studio 2005 Professional Edition Trial:
M3C9X-9K3Q9-DC8PX-B3YR3-BKQR8
* Other recommended downloads:
Visual Studio 2005 Service Pack 1 Beta
如果上面的序列号不可用,请自己去申请
http://www.microsoft.com/windows/embedded/eval/trial.mspx
安装的时候会提示需要一个叫Data_1.cab的文件,该文件下载地址如下:
http://download.microsoft.com/download/a/0/9/a09e587c-4ff9-4a58-a854-56fe50b862b2/Data_1.cab
)
本文附件中提供一个离线安装的文件表(点击下载),把该文件表导入迅雷可以下载完整的离线安装包,大概有3.7G大小。CE6的安装界面如下图所示:
第三步安装Windows Embedded CE 6.0 Platform Builder Service Pack 1,官方下载地址为:
http://www.microsoft.com/downloads/details.aspx?FamilyId=BF0DC0E3-8575-4860-A8E3-290ADF242678&displaylang=en。如果没有安装Vs2k5 SP1补丁,需要先安装该补丁。
安装完成以上三步以后,打开VS2k5, 启动界面上我们可以看到Installed Products中增加了一个Platform Builder for CE6.0,说明CE6已经安装成功了,CE6是以add-on的方式安装在VS2k5中的。
第四步安装Microsoft Device Emulator 2.0,官方下载地址为:http://www.microsoft.com/downloads/details.aspx?FamilyID=dd567053-f231-4a64-a648-fea5e7061303&displaylang=en,2.0版本的模拟器是对VS2k5中默认安装的1.0版本的升级。
第五步是安装Virtual Machine Network Driver for Microsoft Device Emulator,这个组件保证模拟器的正常运行,如果不安装的话模拟器启动以后是黑屏,而且这个问题我也遇到过了,官方下载地址为:http://www.microsoft.com/downloads/details.aspx?FamilyID=dc8332d6-565f-4a57-be8c-1d4718d3af65&DisplayLang=en,这个下载已经被微软关掉了,推荐下载Microsoft Virtual PC 2007,官方下载地址为:http://www.microsoft.com/downloads/details.aspx?FamilyID=04d26402-3199-48a3-afa2-2dc0b40a73b6&DisplayLang=en,但是这里有一个问题,VPC2007能在Windows XP / Vista / Windows Server 2003 Standard上安装而无法在Enterprise上安装,Enterprise上只能装更为高级的Virtual Server 2005。所以在选择操作系统的时候要有所注意。因为我使用的Windows XP操作系认,所以这里直接安装了Virtual PC 2007。
接下来要用刚刚安装好的PB定制一个Windows CE 6.0系统,系统定制完成后可以加载到设备模拟器上,以便我们针对这个系统进行开发和测试。打开VS2k5,选择新建一个新安装的OS Design项目模板创建,进入向导页面。
在Board Support Packages中推荐选择Device Emulator: ARMV4I。这是很重要的一步,同时这里要提到一点,设备模拟器是ARM架构的,也就是说x86架构的CE系统是不能在模拟器上运行的,这个问题我也遇到过了,用CEPC: x86定制了一个系统,编译完成后附加到设备模拟器的时候报出错误: Invalid or missing ROM image. 不过选错了也没有关系,在用模板创建完成后仍然可以修改这些选项。
PB提供了一系列可供选择的设计模板,我选择的是PDA Device -> Mobile Handheld,然后一路下一步就可以完成创建,创建的最后一步确定后会弹出一个Catalog Item Notification的对话框,点击Acknolwlege确定,完成创建。Windows CE系统定制的话题会在以后的心得文章中介绍。在Vs2k5菜单中,选择Tools->Device Emulator Manager, 打开设备模拟器管理窗口,里面列出了现在可用的所有虚拟机,例如Pocket PC 2003, Smartphone 2003等,但是我们现在还找不到WINCE6_EMU的模拟器,接下来我们要对定制好的系统进行编译并生成SDK。
编译之前要提到一点就是取消KITL(no IMGNOKITL=1),如果不取消这一选项的话在非Debug模式下模拟器是不能启动的。右单击项目名称,选择Properties,在Build options中取消对"Enable KITL(no IMGKITL=1)"的选中。然后就可以进行编译了,编译的时间会相对长一些,取决于定制功能的多少。
编译成功之后,在RelDir对应的目录下生成了一个名为NK.bin的文件,这个文件就是给虚拟机使用的运行时镜像,解下来我们要把编译完成的系统附加到设备。在此之前要对连接属性进行一些设置。打开Vs2k5菜单,选择Target -> Connectivity options, 打开目标设备连接属性对话框,Target Device选择CE Device, Download和Transport都选择Device Emulator (DMA),Debugger选择None。针对模拟器运行参数的其他设置,比如屏幕尺寸,内存大小等等,都是要在这个对话框中进行设置的.
修改完配置后点击Apply并关闭窗口,在Vs2k5中选择Target->Attach device开始附加到设备,这个时间也会有几分钟,Output窗口中会显示添加的状态,如果输出窗口卡在某一个位置上,模拟器还是黑屏的话,有可能是前面的某一步配置出现问题。需要回过头来检查,模拟器正常启动后,就可以看到一个Windows CE系统的模拟器窗口。
接下来我们要创建并安装SDK,安装SDK的目的是在Vs2k5中提供对目标设备的开发支持,例如类库,模拟器等。在Vs2k5菜单中选择Project -> Add new SDK, 打开SDK属性页。在Emulator中,将Configuration修改为Device Emulator ARMV4I Debug,填写必要的信息后点击确定,然后在项目窗口中右单击刚才创建的SDK,选择编译。编译完成后生成一个msi安装文件,位于OSDesign项目文件夹下,SDKS<SDKname>目录中。关闭Vs2k5,并击运行这个SDK并安装。
安装完成后,打开Vs2k5,选择菜单Tools -> Device Emulator Manager, 打开设备模拟器管理窗口,我们可以看到WINCE6_EMU下已经添加了我们刚才创建的系统,右单击这个项目选择Connect, 弹出模拟器窗口,CE系统启动成功。
至此已经完成了由PB定制CE6操作系统,生成SDK并安装到开发环境的整个步骤。安装完成后我们便可以在这个定制的CE6平台上开发调试相关的应用程序了。
续二:
通过PB6.0导出一个SDK给VS2005用,似乎VS2008也可以用这个SDK。据说做系统的开发必须用VS2005+PB6.0,而应用的开发是可以用VS2008的。机器上没有装VS2008,所以不能测试了。不管怎样,我们已经有了一个模拟器代替实验板,可以用这个模拟器来调试程序了。
虽然是模拟器,但基本的外围设备都有了,包括网络、Storage Card、调试串口,也支持同步。在使用模拟器的过程中发现一个小技巧。如果从Device Emulator Manager中连接到该模拟器,则每次都必须重新设置网络和共享目录等内容。这虽然不太麻烦,但事实上是可以一劳永逸的,不必每次都来设置。方法如下,打开VS2005——工具——选项——设备工具——设备,到如下图所示界面,注意红色框里的选择项,最后点击“属性”。
点击“属性”后弹出的对话框如下图所示,点击“仿真器选项”,进行配置,就不一一介绍了,根据自己的需求进行设定。配置完成以后,下次再从Device Emulator Manager中连接此模拟器时就默认采用这里的配置项,无须再对其进行配置,省点时间。
在调试程序时,难免要用到远程工具。前段时间在调试2410开发板的WinCE6.0时就发现远程工具有一些小问题,需要手动去改文件才能用。今天在测试模拟器时又碰到了新情况。按理来说,已经同步上了,那完全可以用ActiveSync来做连接。但测试发现根本不行,截图如下,提示说”Unable to load device side components”。
难道不能用Microsoft ActiveSync?那再试试看网络的连接,把CEMGRC等三个文件手动拷贝到模拟器里面,并运行了一长串的命令,测试连接通过了,可真正连接时又不行,弹出如下提示框。
以前用EVC中4.0版的Remote Tools连接WinCE5.0的设备时也出现这样的情况。难道是Remote Tools的版本不对?查看了版本的信息,确实是6.0的,这太奇怪了。
先前曾在C:Program Files的目录下看到过一个CE Remote Tools的目录,这里面放的应该也是远程工具吧。进去看看,果然有几个。但比目录C:Program FilesCommon FilesMicrosoft SharedWindows CE ToolsPlatmaninwce500下的少多了,文件名也不大一样。不是以CE打头,而是用CC打头。打开看看再说,跟先前用的Remote Zoomin还真不一样!左边是新打开的,而右边是从PB6.0中的Remote Tools中打开的。看起来就觉得左边的更靠谱,毕竟能看到我们自己的模拟器。
连接,等待,Downloading Bitmap,果然可以!再比较一下这两个版本到底哪里不一样。
都成找茬的游戏了,除了版本都是6.00外,还真有很多不一样的地方。^_^我很奇怪为什么会有这个差别,两个都是6.0啊!再试别的工具,也没有问题。能用的连接属性设置如下图所示,我们可以看到它并没有用ActiveSync或者网络进行连接,所以可以不用去配置模拟器的网卡,也不用与主机同步。
最后补充说明一下,你可以从开始程序Microsoft Visual Studio 2005Visual Studio Remote Tools中找到这个能用的6.0版的Remote Tools。所以是否说明随VS2005发布的6.0的Remote Tools是真的可用的6.0版本,而随Platform Builder 6.0发布的则不是呢?