jason_gw
驱动牛犊
驱动牛犊
  • 注册日期2002-05-07
  • 最后登录2008-11-17
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望33点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
阅读:3005回复:17

对于一个USB外设,如果要自己写驱动,该如何入手?

楼主#
更多 发布于:2002-10-05 12:17
在USB方面,我是一个新手,不过对这个东西很感兴趣,希望各位大侠能教教小弟。
我的意思是指,有一USB设备,但没有驱动程序,所以打算自己动手写,也可以学写东西,但不知道该用什么工具,该怎么开始,而且写这种驱动是不是一定要读懂所有的协议?
OS_Dev
驱动中牛
驱动中牛
  • 注册日期2002-01-09
  • 最后登录2004-03-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-10-05 12:48
其实你不需要知道很多底层的usb协议。你知道它有几个endpoint,每个endpoint传输的数据的格式,就可以了。

建议先看看programming windows driver model这本书。
I know nothing!
liuxf66
驱动中牛
驱动中牛
  • 注册日期2001-08-15
  • 最后登录2003-04-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-10-06 11:26
OS_Dev兄,帮忙看看我的问题,谢谢了。
如何使用VC++ build driver?(由Walter Oney书中附录C的wdmwiz.awx而来)
liuxf66
vhdl
驱动牛犊
驱动牛犊
  • 注册日期2002-06-17
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-10-06 15:49
最好用driverstudio
正如楼上所说的
只要定义节点就行了
OS_Dev
驱动中牛
驱动中牛
  • 注册日期2002-01-09
  • 最后登录2004-03-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-10-06 16:33
如果不是老板逼着赶工期呢,建议还是不要用driverstudio,不要写了几个月的驱动,最后到底一个驱动怎么回事都不知道。

当然,如果老板逼你,那就采用driverstudio,写一个访问usb的驱动用那玩艺应该是非常方便的(副作用就是当你以为自己很精通驱动了的时候,往往发现自己其实一点都不明白,呵呵)
I know nothing!
gzx
gzx
驱动牛犊
驱动牛犊
  • 注册日期2002-10-06
  • 最后登录2002-10-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-10-06 23:50
呵呵,但我用windriver又如何呢? ;)
jason_gw
驱动牛犊
驱动牛犊
  • 注册日期2002-05-07
  • 最后登录2008-11-17
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望33点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-10-07 09:08
我自己当然想学的深入一点,时间也不是很紧,那是不是只需要VC就可以了?
OS_Dev
驱动中牛
驱动中牛
  • 注册日期2002-01-09
  • 最后登录2004-03-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-10-07 11:32
那就使用ddk来开发。不要使用driverstudio。
ddk可以在很多地方下在到。

但是,你必须先看一本书才行 <programming windows driver model> 作者是walter oney,北大出了一本影印的,很好。如果你想省钱,看电子板也行,本站下载区就有。
I know nothing!
jason_gw
驱动牛犊
驱动牛犊
  • 注册日期2002-05-07
  • 最后登录2008-11-17
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望33点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-10-07 13:57
可我对VC也不熟悉,只编过比较小的一些程序,还不了解DDK是怎么回事,能否也推荐一些书给我?
OS_Dev
驱动中牛
驱动中牛
  • 注册日期2002-01-09
  • 最后登录2004-03-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-10-07 15:59
书我已经告诉你了。必须看。

知不知道vc关系不大,你只要懂c语言,对操作系统的一些基本概念,如同步,抢先等有个了解就可以了。

ddk 是driver development kit ,驱动开发包,在windows下开发驱动就要使用它,提供了一些例子,一些头文件,开发文档,编译工具等。
I know nothing!
jason_gw
驱动牛犊
驱动牛犊
  • 注册日期2002-05-07
  • 最后登录2008-11-17
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望33点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-10-07 16:14
谢谢你,我现在在看,我刚刚下载的,就是比较枯燥了。我还想问一句,写这种驱动是不是必须对设备非常的清楚?
OS_Dev
驱动中牛
驱动中牛
  • 注册日期2002-01-09
  • 最后登录2004-03-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-10-07 18:16
写usb设备的驱动,你完全不必知道它的硬件怎么做的。
但是,它的接口你要知道。其实,usb设备对于pc来说,它的接口是个软件概念,叫做pipe,或者说endpoint,应该是比较容易理解的。

其实,如果要马马虎虎些个usb驱动,你甚至连usb协议都不用看很懂就可以写出来。
不过,给你的建议就是自己好好看看协议。
I know nothing!
sima
驱动牛犊
驱动牛犊
  • 注册日期2002-10-10
  • 最后登录2002-10-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-10-10 13:59
有没有可以参考的代码下载啊?谢谢,哪位好心发给我:smhp@163.net
jason_gw
驱动牛犊
驱动牛犊
  • 注册日期2002-05-07
  • 最后登录2008-11-17
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望33点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-10-11 09:01
是啊,那位仁兄能提供一个例子,这样对我们这些新手应该有很大的帮助的。jason_gw@263.net
wavelight
驱动老牛
驱动老牛
  • 注册日期2002-08-15
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-10-11 09:10
写usb设备的驱动,你完全不必知道它的硬件怎么做的。
但是,它的接口你要知道。其实,usb设备对于pc来说,它的接口是个软件概念,叫做pipe,或者说endpoint,应该是比较容易理解的。

其实,如果要马马虎虎些个usb驱动,你甚至连usb协议都不用看很懂就可以写出来。
不过,给你的建议就是自己好好看看协议。


顺便问一下,这个endpoint 是怎么知道的??
知道这个endpoint后又要怎么做呢?? :)
<table style="filter: glow(color=red, strength=6)"><br><font color=white><b>我cool 故我在!<br></b></font></table> [img]http://www.driverdevelop.com/forum/upload/wavelight/2002-12-13_1.gif[/img]<table style="filter: glow(color=red, strength=6)"><br><font color=white><b>我在 故我cool!<br></b></font></table>
peterwander
驱动牛犊
驱动牛犊
  • 注册日期2001-08-04
  • 最后登录2003-03-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-10-11 20:31
其实所有的硬件资源可以用WINDRIVER得到,装好WINDRIVER后将你的USB设备插到计算机中,启动WINDRIVER此时选择你的USB设备所有的资源端点号极其类型全知道了
jobsju
驱动牛犊
驱动牛犊
  • 注册日期2001-08-29
  • 最后登录2010-01-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2002-10-11 21:09
要知道什么时候需要写Driver
jobsju@hotmail.com jobsjuju@21cn.com jobsju@yahoo.com
use_id
驱动中牛
驱动中牛
  • 注册日期2002-03-11
  • 最后登录2006-01-07
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2002-10-12 19:14
要知道什么时候需要写Driver


????
游客

返回顶部