阅读:2050回复:8
如何调试driver及一些相关的知识
有很多人是初次作driver开发,可能有一些基本的知识还不太清楚。希望下面的文字会对你有用。
1。driver可以干一些事情,也不可以干一些事情。如果是耗时很长的操作,不建议在kernel里面做。如果你非常不幸地因为某些原因一定要做driver,而时间又短,建议还是找人帮忙,或者可以自己开足200%功夫,否则刚开始上手的时候会很悲惨。 2。和硬件打交道,尤其在NT平台下,没有driver的帮助是不可能的。如果你没有看到某个程序调用了driver,可能是:driver是内建在os里面的,或者app自己切换进kernel里面(据说一些hack程序可以做到,但我没有研究过,当然CIH在9x下面是大家都知道的啦!) 3。既然写了driver,就应该有一些kernel的基本知识。比如,经常看到有人在这里问“为什么会死机?”不知道别人会怎么想,至少我本人会觉得这个问题是不知所云。 什么叫死机? 以前我写app的时候,经常也碰到死机,但app的死机经常都是点鼠标没有反应,然后在Task Manager里面显示的是“No Responding“。请注意,这里说的是“No Responding“!但我们中国的程序员都把它叫做“死机“ - 至少我听到的人都这么嚷嚷。 而写driver的死机是什么样的?也是“No Responding“吗?NO!没有看见整个屏幕变成可爱的蓝色了吗?那叫什么?那叫BSOD - Blue Screen of Death! 名字不同有什么关系?当然有关系!解决的思路都是不同的。app的东西,msdn里面都很清楚,弄个vc来调试一些,大部分都可以搞定了吧?!而kernel里面的事情,就不能用vc,得用下面说的东东了。 4。出现死机,如何调试呢?9x下面用softice确实不错,从static到dynamic,一网打尽。如果真的用kd,光那些command就要累死了。而nt下呢?softice是作为service,或者说是kernel driver来运行的,俺也非常佩服Compuware的那些guru,能把windows搞得这么服服帖帖。但既然它是作为service来run的,那在windows启动它之前,它什么也干不了。因此,如果你的driver是在windows一启动的时候就开始干活了,你就得用别的东东 - WinDbg,免费的,在M$的web上就有。很多人不喜欢用它干活,因为需要2台机子,投资太大又麻烦。但实际上,用过它以后,会发现对找bug非常方便 - 每个bug code在里面就直接有解释,有的真的是非常详细,一看就知道是谁在哪个地方,什么时候在捣乱。 5。希望上帝可以救你。写driver的时候,死机是不可避免的,尤其是写fs的(俺以前在某公司打工的时候,就被俺头的ifs driver把俺的整个硬盘给废掉了:mad: :()。因此,如果经济条件好,最好弄2台机子,一台专门写程序,另外一台专门调试。不过,调试的机子也有个建议,最好不要用notebook,否则太多的bsod把硬盘给废掉,你会不会cry?而且在调试的机器上,多运行几次sync.exe,尤其是在要开始调试的时候,否则不知道哪个药房可以买到“后悔药”? 6。driver写好以后,别轻易的出手,跟别人说“俺的driver works fine!”。先用driver verify多搞几次,看看是不是真的robust了。如果是企业级的应用,不妨让boss大出血,买个原装的multi-processor的server来测测看 - 保管很多driver都被废掉。如果有兴趣,再找个特别老的机子,在上面跑跑看看。尤其是一些用95的机子(国人都不会用了,XP的CD到处都是;不过,很多鬼子还是比较“傻帽“一点,如果你的用户非常不幸的正好是这种人....)。还有一些msdn里面的东东,比如hct,也可以测试。如果不经过上面的锤炼,建议你多准备一些行囊,准备跑路吧! |
|
最新喜欢:a_1984
|
沙发#
发布于:2003-03-26 16:45
up!
|
|
|
板凳#
发布于:2003-03-27 14:23
不错啊,不过希望介绍和比较一下写driver的工具。
|
|
地板#
发布于:2003-03-27 14:56
好文章
|
|
地下室#
发布于:2003-03-27 16:49
顶!
|
|
|
5楼#
发布于:2003-03-27 17:11
开眼啊!!
|
|
6楼#
发布于:2003-03-27 17:19
偶最讨厌的就是写程序
可是老板偏偏让偶搞什么该死的usb 结果写玩了固件,写驱动,现在还要搞app 烦死了,经常挨骂不说,郁闷可是从来没断过! 光那个驱动调了2个月,机子重起了无数次!!! |
|
7楼#
发布于:2003-04-11 10:21
:o天哪!我还想把驱动开发作为将来工作的方向哪,这样说来,岂不是……555,话说回来,为了将来,偶还是准备吃苦的。
|
|
|
8楼#
发布于:2003-04-16 16:27
jing兄:
不知你开发用的哪个公司的芯片? 开发板是买的还是自己公司做?俺们老板要自己做板~~~ |
|
|