固高运动控制器-vs2008远程调试wince心得_1

本文转载连接: https://blog.****.net/luxiaofeng13/article/details/54318963


VS2008在wince下远程调试使用:因为工程阶段使用的是固高的运动控制器,固高上的系统是wince,准确的说主要使用的是wince6.0,建议将wince5.0升级为wince6.0,如果自己不会升级的话,咨询固高的工程师让他们帮助升级,因为在实现vs2008的远程调试的时候固高技术支持对于wince5.0平台上的相关软件支持不够,所以还是强烈建议升级为wince6.0;


注:前面这块是固高工程师给的远程调试的方法,还算是详细,使用也是没有问题的。对于wince程序的编写其实最主要的是对应wince版本的sdk平台,相关内容在文章后面)

下面来说一下具体的做法。先明确下概念,远程调试嘛,自然是两个机器之间调试。程序运行在目标机器上,调试器运行在本机。

首先利用网线把本机和目标机器通讯上,即把两者的IP地址设置在同一个网段,例如本机:192.168.128.2,目标机器192.168.128.1。

 

GUC端wince配置

1. 从本机(已安装VS2008)C:/Program Files/Common Files/MicrosoftShared/CoreCon/1.0/Target/wce400/x86下复制一下文件到GUC端:/Windows下,另外需要注意的是:windows文件夹下的非系统文件在重启后会消失,所以每次重启后都要重新拷贝文件到windows,建议把文件在HardDisk备份一份,需要的时候再拷贝过去(注:其实只要把这个四个文件放到一个文件夹,然后将此文件夹放到HardDisk中即可,每次使用的时候无需再拷到windows文件夹下)

Clientshutdown.exe

ConmanClient2.exe

CMaccept.exe

eDbgTL.dll

TcpConnectionA.dll

2.      在GUC端启动 ConmanClient2.exe

3.      在GUC端启动 CMaccept.exe (双击打开就行,不会弹出任何提示)

 

 

 

本机Visual Studio2008配置

1、在本机上安装ActiveSync和GUC_SDK,默认直接安装就行。

2、打开VS2008,新建项目。

固高运动控制器-vs2008远程调试wince心得_1

3、选择“智能设备”并给程序命名,例如:test。(MFC,Win32都可,看工程需求

固高运动控制器-vs2008远程调试wince心得_1

4、选择平台类型—GUC(在我的实践中是guc_ce6_sdk

固高运动控制器-vs2008远程调试wince心得_1

固高运动控制器-vs2008远程调试wince心得_1

(这里的guc安装软件由固高提供,如果是wince6的话对应的就是下载这个系统下的安装包,安装完毕之后,vs2008一般就会在智能设备的选择平台上有这个对应的平台)

5、编写程序代码,添加链接库,并编译通过。

 固高运动控制器-vs2008远程调试wince心得_1

在选择了GUC平台的编程之后,就会在左上角的连接平台和上部的debug平台上显示现在工作的平台就是GUC(或者guc_ce6_sdk)


固高给的说明书的截图这个,这个图要说明的是需要这种方式加入gts.lib,然后才能编译。因为在程序运行时,我们用到了固高提供的gts.dll。gts.lib和gts.h是程序编译的时候需要的两个文件,这两者的使用可以使得我们不用使用导入dll文件的方式来编译程序,当然你也可以选择不使用lib和.h文件,而直接就是按照加载dll文件的语法来。lib和dll文件的关系,网上搜索一下就可以理解了。我在建立工程的时候使用的是gts.h和gts.lib的方式,h文件可以让我看到函数原型,方便编程,工程树和文件夹如下:

固高运动控制器-vs2008远程调试wince心得_1固高运动控制器-vs2008远程调试wince心得_1

固高运动控制器-vs2008远程调试wince心得_1

平台是ce5的,这是我前期截得一个图,ce5远程调试的时候出现了些问题,还是建议安装和使用wince6.0;

6、编译成功后,打开“设备选项”,根据下图设置。

固高运动控制器-vs2008远程调试wince心得_1固高运动控制器-vs2008远程调试wince心得_1

7、打开“连接到设备”,本机会跟GUC自动建立连接,下面是几种连接情况:A、没安装ActiveSync,安装上ActiveSync就可以解决。

 固高运动控制器-vs2008远程调试wince心得_1

B、设备未就绪,GUC端ConmanClient2.exe和CMaccept.exe未启动,双击启动ConmanClient2.exe和CMaccept.exe。

固高运动控制器-vs2008远程调试wince心得_1

C、连接成功。

 固高运动控制器-vs2008远程调试wince心得_1

8、连接成功后,选择debug,点击“启动调试”,可能会弹出以下报警框。原因是在GUC上Program Files/test文件内没有库文件,例如:gts.dll。

固高运动控制器-vs2008远程调试wince心得_1

针对这种情况,有两种方法解决:

1. 用U盘直接将库文件拷贝到GUC上Program Files/test文件内。

2. 打开test属性,如图,在附加文件中把库文和应用程序一起下载到GUC上Program Files/test文件内。

固高运动控制器-vs2008远程调试wince心得_1

9、解决以上问题后,接下来就可以进行调试了。

         我开发的是控制台程序可以看到最终生成的程序是在guc_ce5_sdk/Debug/test.exe,这个不是普通的win32控制台程序,只能在wince上运行,注意gts.dll使用的是winCE环境下的dll文件(在下图种已经标记出来),其他版本的dll拷贝到debug文件夹会出现程序找不到dll的问题(无法找到exe,或它的组件,请确定库文件是否可用),相关的文件是在“王帅修正的VS2008开发CE5.0系统下应用程序”。

 固高运动控制器-vs2008远程调试wince心得_1固高运动控制器-vs2008远程调试wince心得_1

固高运动控制器-vs2008远程调试wince心得_1

      前期我们的固高控制器是wince 5版本的,所以需要使用的是guc_ce5_sdk,guc_ce6_sdk是为了wince 6版本的。虽然安装ce6_sdk会在vs2008上显示出来sdk的平台,但是会出现开发的程序无法在wince 5系统上运行(错误提示:无法启动程序,需要更高的windows版本)。

     期间安装guc_ce5_sdk程序后vs2008种不会显示它的平台,但是装guc_ce6_sdk的时候是显示出来的,同事采用重新安装vs2008和ActiveSync软件的方式,最终使得guc_ce5_sdk的平台显示能够在vs2008中使用,我觉得可能主要原因是vs2008的安装,而不是ActiveSync同步软件的问题,因为同步软件的作用是为了远程调试,但即使重新安装之后,远程调试还是没走通,程序开发是可以的,将生成的程序拷贝到固高控制器中进行运行是可行的;(后期将wince升级为6之后,ce6的平台能够安装上去,远程调试也可以运行,这也就是为什么我前期建议升级为wince6)


以上内容一部分是固高技术支持提供的说明书中的一部分,一部分是自己经验总结得来的。工程开发过程中,由于是第一次在wince上开发程序所以经验不足,虽然一些问题固高的技术支持能够提供帮助,但是具体到工程本身的时候,很多问题都是得自己探索的,我们在这个过程中耗费的时间很多,因此我想着把自己针对固高运动控制wince6.0平台上的程序开发的一些经验整理和分享出来,这是我第一篇的技术分享博文,以后也会多多在****上分享博文。