您的位置:首页 > 编程语言 > Go语言

浅谈wince驱动调试方法(作者:wogoyixikexie@gliet)

2009-02-17 14:28 423 查看
以前,我调试驱动都是打包,下载,很郁闷,一个小小的DLL都要这么费神,对微软极为不满,现在发现驱动调试有一些诀窍,特来和大家分享,如果你有更好的方法,就来和大家分享吧。

之所以说“浅谈”,是因为我自己也搞得模模糊糊的,问过很多人,大家一致认为有三种调试方法:

一、使用应用程序动态加载驱动——优点是不用下载打包NK,可以在正常情况下看到驱动的运行情况;缺点是只能调试流驱动。在这方面有个专家做的很好,发布了驱动调试助手http://www.cnblogs.com/we-hjb/archive/2009/02/14/1250838.html#1451120——在这里就不多说了,看原版才是好的。

二、KITL。这个东西我用过,觉得调试那些不能启动的严重BUG很有用。下面适合一个朋友的谈话,很清晰了。

三、神秘武器......什么都不用!

加密助手 说:

--- 系统提示: 以下会话未被加密 ---

CSDN-Ricky_hu北京 说:

做过

CSDN-Ricky_hu北京 说:

这就是动态调试驱动,经常这样做

wogoyixikexie@gliet 说:

这个方法我很想学,你能不能教教我

wogoyixikexie@gliet 说:

整天烧写,太郁闷了

CSDN-Ricky_hu北京 说:

谈不上教, 很容易的

wogoyixikexie@gliet 说:

我都不知道怎么操作

CSDN-Ricky_hu北京 说:

你烧写一次,然后用pb通过kitl下载,在这个target->release dir module->add module里面添加你要调试的驱动就ok了

CSDN-Ricky_hu北京 说:

这个就是kitl的主要功能

wogoyixikexie@gliet 说:

这样加载上去也没有什么意思啊。因为KITL只能往前加载,不能往后加载的

CSDN-Ricky_hu北京 说:

你说的往后加载是什么意思?

wogoyixikexie@gliet 说:

就是比如我加载过一个驱动以后,不能再回来设置断点再次执行了

wogoyixikexie@gliet 说:

同一个驱动不能执行两次的吧

CSDN-Ricky_hu北京 说:

再回来设置断点就重新连接kitl啊

wogoyixikexie@gliet 说:

KITL,我的还有点问题,我只会使用一点点

CSDN-Ricky_hu北京 说:

在eboot里面配置好了就ok了

wogoyixikexie@gliet 说:

你的意思是说,在这个target->release dir module->add module里面添加你要调试的驱动,然后要重新连接KITL?

CSDN-Ricky_hu北京 说:

你要调试那个驱动就把它添加到target->release dir module->add module这里面,然后连接kitl调试,发现问题,修改后直接编译这个驱动,然后再重新连接kitl继续调试,再发现问题,再修改,再连kitl调试

wogoyixikexie@gliet 说:

哦,这也是个方法

wogoyixikexie@gliet 说:

这个方法很强大,可以调试本机驱动

wogoyixikexie@gliet 说:

使用应用程序只能调试流驱动

CSDN-Ricky_hu北京 说:

这是pb中kitl的基本调试方法,功能很强大,能打印很多调试信息

CSDN-Ricky_hu北京 说:

应用程序调试的只是接口,驱动内部的还是不能够调试

wogoyixikexie@gliet 说:

不过缺点是注册表修改之后就要重新下载内核才行

CSDN-Ricky_hu北京 说:

嗯,对,这个对于注册表以及kernel级别的修改要重新下载nk

wogoyixikexie@gliet 说:

还有一般要编译成debug版本的驱动才行,整个NK编译成debug版本会非常大。哈哈,原以为是不用KITL就可以加载的。厉害

CSDN-Ricky_hu北京 说:

不一定非得编译成debug版本的驱动啊,release版本的也可以通过kitl调试,而且调试信息也很丰富的

wogoyixikexie@gliet 说:

你用什么芯片?

wogoyixikexie@gliet 说:

PXA310?

CSDN-Ricky_hu北京 说:

你可以在release驱动里面加断点,一步步走,这样发现问题很快

CSDN-Ricky_hu北京 说:

pxa270,不过马上要用310了

wogoyixikexie@gliet 说:

有些驱动是有接口的,接口需要应用来访问

wogoyixikexie@gliet 说:

如果KITL+应用程序来调试,这样打印信息也会显示在PB里面吧

CSDN-Ricky_hu北京 说:

驱动一般都有接口,就看这个接口是留给谁来访问了

CSDN-Ricky_hu北京 说:

wogoyixikexie@gliet 说 (9:43):

如果KITL+应用程序来调试,这样打印信息也会显示在PB里面吧

对,会显示

wogoyixikexie@gliet 说:

不过这样已经很不错了。比如COM_Read这些,KITL应该不能在里面设置断点的吧

CSDN-Ricky_hu北京 说:

这个COM_Read是驱动提供的接口吗?如果是,也能设置断点的

wogoyixikexie@gliet 说:



wogoyixikexie@gliet 说:

要应用程序打开的

wogoyixikexie@gliet 说:

这个也行?

CSDN-Ricky_hu北京 说:

但是你要把断点设置在驱动里面,而不是应用程序里面

wogoyixikexie@gliet 说:

那太厉害了,那怎么控制它进去?

CSDN-Ricky_hu北京 说:

你用kitl就应该没问题

CSDN-Ricky_hu北京 说:

在XXX_Read

CSDN-Ricky_hu北京 说:

里面设置断点

wogoyixikexie@gliet 说:

是不是有命令才行进去,还是直接弄个断点就可以了?

CSDN-Ricky_hu北京 说:

你确定应用要调用xxx_read(),然后在它的驱动里面设置断点就可以断住了吧

wogoyixikexie@gliet 说:

这是很好的方法

CSDN-Ricky_hu北京 说:

具体的你可以试试,但是用kitl调试应用的话效果不太理想

CSDN-Ricky_hu北京 说:

你可以用vs调试应用,看问题出现在哪里,然后用pb继续跟踪驱动

wogoyixikexie@gliet 说:

我上次弄过一下子,发现液晶屏不会亮了,但是系统已经起来

CSDN-Ricky_hu北京 说:

呵呵

wogoyixikexie@gliet 说:

这个三星BSP做的不是很好。

CSDN-Ricky_hu北京 说:

我没用过三星的bsp和芯片

CSDN-Ricky_hu北京 说:

三星自己的手机啊什么的产品都不用他们自己的芯片和bsp,我们为什么要用呢,呵呵。。。

wogoyixikexie@gliet 说:

的确是

wogoyixikexie@gliet 说:

你是通过网卡来弄KITL的吧?

CSDN-Ricky_hu北京 说:

usb

CSDN-Ricky_hu北京 说:

其实也是模拟成网卡

wogoyixikexie@gliet 说:

很多人都不会用KITL,你那里有什么文档吗?有空写个完整的博客帮帮大家,哈哈

wogoyixikexie@gliet 说:

上次我也用USB,这样就会是同步软件不能连接了。不能弄应用程序进来联调

CSDN-Ricky_hu北京 说:

我也是从优龙的eboot里面移植过来的

CSDN-Ricky_hu北京 说:

还有pb下面mainstone的bsp里面也有,你也可以移植一下

wogoyixikexie@gliet 说:

哦,确实是,PB5.0下,那个正是PXA270的BSP。

CSDN-Ricky_hu北京 说:

有空我可以整理一下,但是目前很忙啊,产品马上要上市了,天天加班

CSDN-Ricky_hu北京 说:

是啊,我们就是在这个bsp上移植的,很好用,很快

wogoyixikexie@gliet 说:

我想弄个这种板子来搞搞。嘿嘿。

wogoyixikexie@gliet 说:

不打扰你了。谢谢你

CSDN-Ricky_hu北京 说:

客气,呵呵。。

准备结贴。

总结:

一、经过这次教训,MDD部分的代码最好不要修改,因为它极有可能和别的驱动公用,如果改动了,甚至让信息打印也会产生意想不到的后果,实在要修改的,就移植到BSP下,这样我们就可以任意妄为了。哈哈

二、意外收获——找到了最佳调试驱动方法。1、KITL(适合调试大BUG,比如异常,不能启动系统等情况) 2、驱动调试助手(适合调试流驱动,并且驱动中无注册表操作的情况,有注册表操作的会导致异常,如果有时间,可以修改一下这个BUG) 3、在platform.bib,platform.reg文件中准备好所调试驱动相关信息。再次调试修改该驱动的时候,只需要把该驱动的DLL代替wince windows目录下的老DLL即可。当然少不了应用程序配合调试其他功能(最好加入注册表操作)——这是我目前最支持的方法,因为最简单,最可靠!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐