阅读:5261回复:11
驱动开发数月的一些心得
不知不觉开发驱动程序已经有好几个月了,从对驱动程序一窍不通到现在也算是小有成就了,对其间的一些感想,在这里和大家交流一下,希望对大家有些帮助,同时也要向大家多请教。
我是搞USB的,在开发最初用的是DRIVERWORKS,后来改用DDK,最早也是经常碰上设备安装不上等很郁闷的事,当碰上时千万不要灰心,要善于使用工具,用SOFTICE跟踪一下,能跟到多深就跟多深,一般都能找到问题所在,在开发时多打印一些调试信息出来,DRIVERWORKBENCH是一个很好的调试信息终端。 USB其实没有什么复杂的,但大家刚接触到DDK时一定会被那些古怪的函数吓倒,而且又不象开发应用程序一样到处都能搞到文档,所以一定要自己提高搜索东西的能力,平常没事不妨在网上搜一下,要锻炼这种能力,其实也可以这么做,想一些函数,要求是确信有这样的API函数,但从来也没见过也不知道叫什么,但知道是干什么用的,如果你能在MSDN里把它找出来,那练的也差不多了。 另外,可以找一些例子来参考,甚至做一些修改直接用也可以,DDK或DRIVERWORKS所带的例子都是没什么BUG的,而且也很明了,如果你仔细跟踪的话还可以发现DDK的例子和DRIVERWORKS的例子几乎是一样的,所不同的只是DRIVERWORKS把DDK封装了,然后用面向对象的方式给人用。拿些例子研究一下能很大程度的提高驱动开发水平。 还有,DRIVERWORKS的库的代码不知各位有没有仔细研究过,就是在安装完成后让你编译的那个库,如果没有的话就去研究一下。 最后我建议驱动程序尽可能简单,只要完成一些基本的功能比如读,写,控制就可以,打个比方就是驱动程序就象是搭了一座桥,是一条通路,别的对设备的操作比如要设置设备的寄存器等大可以放在应用层去做,以DLL的方式提供给上层应用程序调用。当然,如果对速度要求比较高,还是应该放到驱动层里,另外,对一些非常标准的设备,可能也不得不把大多数东西放到驱动层里。 驱动开发其实没有什么难度,也没什么算法,如果领悟了其实比应用程序简单,但从事驱动开发实在是一个挑战,大家既然选择了开发驱动程序,都是有胆有识的高手,不要被经常蓝屏,死机吓跑,重启电脑,继续挑战,当设备正常工作时的喜悦一定会让你觉得这些辛苦都是值得的。 祝大家在开发过程中一切顺利。 |
|
沙发#
发布于:2002-01-13 19:30
补充一点,由于USB的即插即用的特性,所以在开发过程中更新设备十分简单,第一遍安装完后,以后每次只要把.sys的文件放在windows目录的system32\\drivers目录里,然后把线拔了重新插一遍就可以,可以直接在VC工程里设置.sys的输出目录。
|
|
板凳#
发布于:2002-01-14 20:13
祝贺你有小成啊! :D 顺便问一句,你的fireware是自己编的吧?
我是一个新手乐 :P,头让我按usb1.1协议标准用picmcu与PC做最简单的数据传输通信,我现在还不知道如何做,不知您是否能给点建议! |
|
|
地板#
发布于:2002-01-15 09:10
ygm99:你用的ddk里面的哪个例子?有的有bug
|
|
|
地下室#
发布于:2004-07-26 21:04
请问各位,DDK从哪里才能弄到。我是新手,请指教。
|
|
5楼#
发布于:2005-05-14 01:01
望高手指点开发环境的设置,2000DDK+VC6.0+DS3.2,谢先!
|
|
6楼#
发布于:2005-07-04 17:38
据我所知,2000DDK是不能用DS3.2 的
|
|
7楼#
发布于:2007-10-17 10:30
我也是新手,也是PICMCU+USB,还没上手,向各位请都怎么开始做?(我真的很菜。)
|
|
8楼#
发布于:2007-10-19 21:23
支持,,,
|
|
9楼#
发布于:2008-01-29 14:31
学习太痛苦了,谁能写一本书,我一定买
|
|
10楼#
发布于:2008-06-05 15:01
我的运行环境是弄好了`可网上下的源代码运行报错`老师说是少库了`
这代码不全我自己可写不来啊`哪位有完整的代码么?给我发一份`在此先谢过了` 马上就要答辩了`希望好心人帮帮忙 ![]() |
|
11楼#
发布于:2008-06-05 15:05
我的油箱:liujie_9525@163.com
|
|