wince 驱动 调试总结

24 篇文章 1 订阅

转载:http://blog.csdn.net/flandy1982/article/details/5818215

WinCE6.0 kitl 配置、连接和调试详解

链接:http://blog.csdn.net/fqayst/article/details/6750649

单独编译一个debug版本驱动:

将下面这句代码加入到驱动所在目录中的sources文件中即可:
CDEFINES=$(CDEFINES) -DDEBUG

 

————————————————-不知道是否会和这种方法效果一样?

 

WINCE的驱动开发中,我们一般将工程编译为release模式。如果编译为debug模式,编译结果(NK)将会非常大,超过代码中对NK的限制范围。

而且有的时候我们只需要了解个别设备驱动的调试信息,并不需要将整个工程编译为debug模式。

在这种情况下可以用这样的方法,在驱动文件的头部加上:

#undef DEBUGMSG
#define DEBUGMSG(x,s) NKDbgPrintfW s

这样这个驱动文件里的所有调试信息都会打印出来,并且不理会DebugZone的设置。

 

       如果想屏蔽某个驱动的所有打印信息怎么办?在驱动前面加入如下宏定义即可

      

#define SHIP_BUILD 1

#ifdef SHIP_BUILD

#define ERRORMSG(cond,printf_exp) ((void)0)
#define RETAILMSG(cond,printf_exp) ((void)0)
#define DEBUGMSG(cond,printf_exp) ((void)0)
#define DEBUGLED(cond,parms) ((void)0)
#define DBGCHK(module,exp) ((void)0)
#define DEBUGCHK(exp) ((void)0)
#define DEBUGREGISTER(hMod) ((void)0)
#define RETAILREGISTERZONES(hMod) ((void)0)

#endif

效果很好,只是编译会多几个警告,不过这个不影响使用的。哈哈,以后就这么干了。

 

WINCE下快速编译单个驱动

之前看到过其他博客里面关于快速编译单个驱动的方法,如下图,点击build按钮,IDE会单独编译所选择的驱动。

 

但实际上,这种方法还是不够快,因为在build完驱动后,IDE还会重新makeimage一次,这是我们不希望看到的,通常我们只是重新编译驱动,然后使用驱动调试助手激活驱动进行调试。

那么使用什么方法可直接编译单个驱动而不makeimage呢?

步骤是:

1.选择Open build window(WINCE5.0请直接navigate到驱动目录)

2.输入命令 build -nmake -D

仅需数秒,驱动就编译完成了,编译结果见下图:

 

 

总结:
一、经过这次教训,MDD部分的代码最好不要修改,因为它极有可能和别的驱动公用,如果改动了,甚至让信息打印也会产生意想不到的后果,实在要修改的,就移植到BSP下,这样我们就可以任意妄为了。哈哈
二、意外收获——找到了最佳调试驱动方法。1、KITL(适合调试大BUG,比如异常,不能启动系统等情况) 2、驱动调试助手(适合调试流驱动,并且驱动中无注册表操作的情况,有注册表操作的会导致异常,如果有时间,可以修改一下这个BUG) 3、在platform.bib,platform.reg文件中准备好所调试驱动相关信息。再次调试修改该驱动的时候,只需要把该驱动的DLL代替wince windows目录下的老DLL即可。当然少不了应用程序配合调试其他功能(最好加入注册表操作)——这是我目前最支持的方法,因为最简单,最可靠!
三、

Platform Builder中的KITL支持内核调试,正确配置后会自动与PB寻求连接并使PB进入调试界面, 目前支持的连接方式有:Serial, USB, ethnet.

KITL占用的连接通道会与WinCE镜像发生冲突, 因为KITL是先运行的,所以系统在LOAD到相应的模块时会死掉。 比如:假设KITL使用Serial连接,则系统在LOAD(启动)Serial模块时就会发生冲突,导致系统启动失败,所以在配置系统是就需要将Serial模块拿掉。同理, 如果KITL选用USB连线方式, 则需要再配置系统时拿掉USB模块。

KITL 选用USB连线方式时,还要在kitl_cfg.h中将其设定为USBSER_KITL_POLL 模式.

要让断点能停下来,系统必须运行DEBUG版本。断点偶尔会停不下来, 这是PB本身不稳定所致,重来一次就好了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值