LIUTANG
驱动大牛
驱动大牛
  • 注册日期2001-03-30
  • 最后登录2020-12-27
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望58点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:5261回复:11

驱动开发数月的一些心得

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

返回顶部