马宁的嵌入式开发研究

Windows Phone, XNA, Windows Embedded, Windows Mobile
posts - 80, comments - 677, trackbacks - 17, articles - 0

2008年2月3日

上一篇《Windows Embedded CE 6.0开发初体验》之平台定制

http://blog.csdn.net/aawolf/archive/2008/01/12/2039866.aspx

在完成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

dbootDigi开发的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的平台。

呼,终于在过年前把这个坑填完了。祝大家新年快乐,年后再填另外一个坑:

《XP Embedded开发出体验》

http://blog.csdn.net/aawolf/archive/2007/11/11/1879406.aspx

posted @ 2008-02-03 12:35 马宁 阅读(1958) 评论(1) 编辑

上一篇《Windows Embedded CE 6.0开发初体验》之构建CE平台

http://blog.csdn.net/aawolf/archive/2007/12/19/1953448.aspx

 

Windows CE是一个组件化的操作系统,我们可以根据不同的环境设置不同的组件来组合成有针对性的平台,而一个功能往往需要多个组件才能够实现。Catalog就是实现某个功能的组件集合,每个Catalog Item会包含一个或多个组件,而Catalog Item则需要实现某种功能。当我们的平台需要这个功能是,就将相对应的Catalog Item选入平台中即可。

在完成了平台创建的向导之后,我们就进入了PBIDE界面。Catalog Items视图与Solution Explorer处于同一区域,两者间可以自由进行切换。

Catalog Items视图中,我们可以看到CE中包含的Catalog大概可以分为下面几类:BSP(板级支持包); Core OS(操作系统中包含的组件);Device Drivers(驱动程序类);Platform Manager(平台管理器)和Third Party(第三方提供的组件)。其中实现功能的组件大都包含在Core OS中。

我们如果要为平台增加游戏,则选择“Core OS CEBASE Application – End User- Games”下的游戏:FreecellSolitaire两个游戏。

除了能够为平台增加Catalog外,我们还可以增加自己的文件和注册表信息。

将视图切换回Solution Explorer,我们可以看到平台中包含的所有文件。其中,选择“Parameter Files”中的“ConnectCore 9P”,其中会包含 project.reg文件,双击点开该文件,我们就可以增加一些注册表信息。这些注册表信息,将会出现在目标设备的注册表中。

除此之外,在C:/WINCE600PLATFORM - CC9P – Parameter Files下,我们还可以看到platform.reg文件。Platform.reg文件是针对所有运行于CC9P开发板上的平台,而project.reg只是针对目前的开发平台。

 

如果想在平台中加入自己的文件,则需要使用bib文件了。如果想引入一些批处理操作,则要使用dat文件了。我们通常使用project.bibproject.dat文件。

Bib文件的标准格式为三个部分: 目标文件名,源文件路径和名称,Memory Type。目标文件名指的是在目标设备上的文件名,如果没有指定路径,则默认出现在\Windows目录下。第二部分是源文件路径和名称,指的是文件在PC上的路径;最后指定的是Memory Type,如果是想让文件被编译到NK.bin中,则要指定为NK。三个部分之间使用空格隔开即可。同时bib文件支持宏。我们可以通过指定不同的环境变量,来为NK.bin中加入不同的文件。

指定环境变量的方法如下:在Solution Explorer中右键点击DigiOS,在菜单中选择Properties。在属性对话框中,选择Environment,然后,我们就可以添加自己的环境变量了。

环境变量有两个值:1或者<>。在这里我们创建一个名为“IMG_NETCF_CSAPP”的环境变量。如果该变量为1,则bib文件,会包含hello_mvp.exe文件到NK.bin中。

如果我们还想执行一些其他操作的话,就必须借助于dat文件了。这里的dat文件和PC平台上的一样,也是批处理文件。比如,我们可以讲一个快捷方式文件(.lnk)从\Windows目录下拷贝到\Windows\Startup目录下。这样,在操作系统启动时,就会执行lnk文件相对应的可执行文件了。

好了,进行到这里,我们平台定制的工作就可以告一段落了。我们学习了如何向平台中添加Catalog Items、文件和注册表项,还可以执行批处理操作。接下来,我们就可以对定制好的平台进行编译和调试了。

 

下一篇《Windows Embedded CE 6.0开发初体验》之”编译和调试平台”

posted @ 2008-02-03 12:32 马宁 阅读(2284) 评论(2) 编辑