我是靠谱客的博主 专一苗条,最近开发中收集的这篇文章主要介绍我是USB -学习笔记 ,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

      一个接口对应一个驱动,一个驱动往往可以支持多个接口!

 

蒲 松 龄 曰 , 每 个 男 人 的 心 中 都 有 一 个 狐 狸 精 , 每 个 写 usb 驱 动 的 人 心 中 都 有 一 个
usb_driver。一般来说,我们平时所谓的编写usb驱动指的也就是写usb接口的驱动,需要
以一个struct usb_driver结构的对象为中心,以设备的接口提供的功能为基础,开展usb
驱动的建设。
834 行,name,驱动程序的名字,对应了在/sys/bus/usb/drivers/下面的子目录名称。
和我们每个人一样,      它只是彼此区别的一个代号,         不同的是我们可以有很多人叫张三或者李
四,但这里的名字在所有的 usb 驱动中必须是唯一的。
836 行,probe,用来看看这个 usb 驱动是否愿意接受某个接口的函数。每个驱动自诞生
起,它的另一半就已经确定了,这个函数就是来判断哪个才是她苦苦等待的那个他。当然,
这个他应该是他们,因为一个驱动往往可以支持多个接口。
839 行,disconnect,当接口失去联系,或使用rmmod卸载驱动将它和接口强行分开时
这个函数就会被调用。
841 行,ioctl,当你的驱动有通过usbfs和用户空间交流的需要的话,就使用它吧。
844 行,suspend,845 行,resume,分别在设备被挂起和唤醒时使用。
847 行,pre_reset,848 行,post_reset,分别在设备将要复位(reset)和已经复位后
使用。
850 行,id_table,驱动支持的所有设备的花名册,所有的三宫六院要想受到宠幸都要在
这里登记。驱动就靠这张表儿来识别是不是支持哪个设备接口的,如果不属于这张表,那就
躲一边儿去吧。
852 行,dynids,支持动态 id 的。什么是动态 id?本来前面刚说每个驱动诞生时她的另一
半在 id_table 里就已经确定了,可是谁规定了女同胞就一定要从一而终了,那是封建旧思
想要打到的,听听她们内心的呼声“谁说我白,瘦,漂亮~我就跟他做好朋友”                         ,Greg 大侠
显然也听到了,于是在一年多前的一个寒风萧萧的日子里平地一声吼,加入了动态 id 的机
                                 73
                   也可以添加新的 id 给她,       只要新 id 代表的设备存在,
制。即使驱动已经加载了,                                              对她说“你
又白又瘦又漂亮”    ,她就会和他绑定起来。
怎么添加新的 id?到驱动所在的地方瞅瞅,也就是/sys/bus/usb/drivers 目录下边儿,那
里列出的每个目录就代表了一个 usb 驱动,随便选一个进去,能够看到一个 new_id 文件
吧,使用 echo 将厂商和产品 id 写进去就可以了。看看 Greg 举的一个例子
  echo 0557 2008 > /sys/bus/usb/drivers/foo_driver/new_id
就可以将 16 进制值 0557 和 2008 写到 foo_driver 驱动的设备 id 表里取。

最后

以上就是专一苗条为你收集整理的我是USB -学习笔记 的全部内容,希望文章能够帮你解决我是USB -学习笔记 所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部