在完成Catalog选择之后,平台定制的工作告一段落,接下来,我们就要进入变数最多的环节——“编译和调试”平台了。编译的操作简单,但是想通过编译却有很多变数。
编译平台的第一步是选择Debug或者Release版本。选择 Build菜单中的Configuration Manager,在弹出的对话框中选择Debug还是Release版本。如下图,红圈部分所示:
在Build菜单中选择“Build Solution”,就可以开始进行平台的编译了。编译的时间依照开发机器的性能不同而不同,从几十分钟到几个小时不等。如果几次编译不成功,的确是一件让人比较抓狂的事情……
直到我们在Output窗口中看到下边的输出,就说明你功德圆满了,终于完成了Image文件的编译,可以调试了。
等编译好之后,我们就可以将Image文件下载到开发板中,并开始调试了。这个过程也是比较复杂的。在第一次进行下载前,我们要首先在Visual Studio中创建一个供下载用的设备。具体过程如下:
第一步,选择“Target”菜单中的“Connectivity Options”,打开连接选项的对话框:
第二步,在对话框中选择“Add Device”,创建一个新的设备,设备名称为“MyTarget_Debug”,这个名称没有任何限制,可以取任意的名字。“Associated OS Design/SDK”选项中,设置为“None”。
在之后出现Target Device设置的界面中,确认“Downlaod”设置为“Ethernet”,即以太网。然后点击其后的“Settings”按钮。
在Vista或者XP上开发时,会有一个安全警告出现,点击“解除锁定”选择,否则调用会失败。
接下来会出现“Ethernet Download Settings”对话框,如下图:
这时,我们要通过超级终端对开发板进行设置:将开发板电源关闭,确认串口连接,并且超级终端处于连接状态后,打开电源。当超级终端出现提示“Hit any key to stop autoboot”时,按任意键停止自动加载过程。然后在命令行中输入:
dboot eboot flash
dboot是Digi开发的boot-loader,这个命令的意思是打开Flash ROM中的eboot。我们知道,eboot是允许CE Image通过以太网下载到开发板中的工具。启动eboot之后,会首先初始化网卡驱动,保证网卡可用,然后向本网段广播BOOTME的消息。所以,开发机器和开发板在设置IP地址时一定要注意,二者要设置为同一网段内的IP地址。
如果eboot启动成功,我们在开发机器的Visual Studio中“Ethernet Download Settings”对话框中会看到一个新的设备出现,选择该设备,此时设备名称会出现在上面的下拉菜单中。
返回上一个对话框,点击“Apply”,再点击“Close”。关闭对话框。此时我们的开发板就被映射为名为“MyTarget_Debug”的Target Device了。
需要注意的是,以上操作针对每块开发板只需要做一次。第二次需要进行Debug时就不需要重新添加设备了。
回到Visual Studio的主界面,我们可以选择“Target”菜单的“Attach Device”命令,或者选择菜单栏上的图标进行相同的操作。示例如下:
接下来,就会出现如下的对话框,将Build好的Image文件从下载到开发板上。需要注意的有两点:第一,如果在开发板上的Server IP地址(即开发机器的IP)没有设置对,则对话框会出现,但是很长时间都不会开始下载,一直在等待响应;
第二,下载的Image文件会保存在开发板的内存中,所以如果开发板掉电,则下载的Image会丢失。所以这个过程只是为了完成调试的,如果想将Image文件烧录到开发板上,还需要另外的操作。
整个下载的过程大概需要几分钟:
当下载完成之后,真正的Debug过程才会真正的开始。因为Debug的缘故,所以造成整个开发板中的操作系统运行比较慢,所以大家不要误以为这个速度就是Windows CE平台运行的正常速度了。
在系统启动的过程中,可能会有几个地方造成执行中断,这是由DEBUGCHECK的宏造成的,原因可能是Windows CE系统调用BSP中某个驱动程序时造成的问题,但是该问题不会影响系统的正常运行。所以我们可以直接按F5继续运行就可以了。
写在最后
到这里,我们就已经完整的说明了Windows Embedded CE 6,0的开发过程。如果没有实际开发板的朋友,可以考虑使用Device Emulator 的方法来开发CE 6.0的平台。