首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

驱动开发数月的一些心得(转贴)

驱动开发数月的一些心得(转贴)

不知不觉开发驱动程序已经有好几个月了,从对驱动程序一窍不通到现在也算是小有成就了,对其间的一些感想,在这里和大家交流一下,希望对大家有些帮助,同时也要向大家多请教。
我是搞USB的,在开发最初用的是DRIVERWORKS,后来改用DDK,最早也是经常碰上设备安装不上等很郁闷的事,当碰上时千万不要灰心,要善于使用工具,用SOFTICE跟踪一下,能跟到多深就跟多深,一般都能找到问题所在,在开发时多打印一些调试信息出来,DRIVERWORKBENCH是一个很好的调试信息终端。
USB其实没有什么复杂的,但大家刚接触到DDK时一定会被那些古怪的函数吓倒,而且又不象开发应用程序一样到处都能搞到文档,所以一定要自己提高搜索东西的能力,平常没事不妨在网上搜一下,要锻炼这种能力,其实也可以这么做,想一些函数,要求是确信有这样的API函数,但从来也没见过也不知道叫什么,但知道是干什么用的,如果你能在MSDN里把它找出来,那练的也差不多了。
另外,可以找一些例子来参考,甚至做一些修改直接用也可以,DDK或DRIVERWORKS所带的例子都是没什么BUG的,而且也很明了,如果你仔细跟踪的话还可以发现DDK的例子和DRIVERWORKS的例子几乎是一样的,所不同的只是DRIVERWORKS把DDK封装了,然后用面向对象的方式给人用。拿些例子研究一下能很大程度的提高驱动开发水平。
还有,DRIVERWORKS的库的代码不知各位有没有仔细研究过,就是在安装完成后让你编译的那个库,如果没有的话就去研究一下。
最后我建议驱动程序尽可能简单,只要完成一些基本的功能比如读,写,控制就可以,打个比方就是驱动程序就象是搭了一座桥,是一条通路,别的对设备的操作比如要设置设备的寄存器等大可以放在应用层去做,以DLL的方式提供给上层应用程序调用。当然,如果对速度要求比较高,还是应该放到驱动层里,另外,对一些非常标准的设备,可能也不得不把大多数东西放到驱动层里。
驱动开发其实没有什么难度,也没什么算法,如果领悟了其实比应用程序简单,但从事驱动开发实在是一个挑战,大家既然选择了开发驱动程序,都是有胆有识的高手,不要被经常蓝屏,死机吓跑,重启电脑,继续挑战,当设备正常工作时的喜悦一定会让你觉得这些辛苦都是值得的。
祝大家在开发过程中一切顺利。
51 c8051f(f020,f040) msp430 arm(2410,2510) fpga(xc3s4000) dsp(5116 dm642) keilc vc++ matlab linux protel Ten_layerPCB mpegx h.26x Rscode Turbocode ofdm VideoBroadcasting ldpc_code(now!)
多谢,更有信心了!
返回列表