USB驱动编程指南.pdfVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
USB驱动编写指南 1 概念:模块和设备文件 1.1 模块 模块是在内核空间运行的程序, 实际上是一种目标对象文件, 没有链接, 不能独立运行, 但是可以装载到系统中作为内核的一部分运行, 从而可以动态扩充内核的功能。 模块最主要 的用处就是用来实现设备驱动程序。 Linux 下对于一个硬件的驱动,可以有两种方式:直接 加载到内核代码中, 启动内核时就会驱动此硬件设备。 另一种就是以模块方式, 编译生成一 个 .ko 文件 (在 2.4 以下内核中是用 .o 作模块文件,我们以 2.6 的内核为准,以下同 )。当应用 程序需要时再加载到内核空间运行。 所以我们所说的一个硬件的驱动程序, 通常指的就是一 个驱动模块。 1.2 设备文件 设备文件对于一个设备,它可以在 /dev 下面存在一个对应的逻辑设备节点,这个节点 以文件的形式存在,但它不是普通意义上的文件,它是设备文件,更确切 的说,它是设备 节点。这个节点是通过 mknod 命令建立的,其中指定了主设备号和次设备号。主设备号表 明了某一类设备, 一般对应着确定的驱动程序; 次设备号一般是区分不同属性, 例如不同的 使用方法,不同的位置,不同的操作。这个设备号是从 /proc/devices 文件中获得的,所以一 般是先有驱动程序在内核中,才有设备节点在目录中。这个设备号 (特指主设备号)的主要 作用, 就是声明设备所使用的驱动程序。 驱动程序和设备号是一一对应的, 当你打开一个设 备文件时,操作系统就已经知道这个设备所对应的驱动程序。对于一个硬件, Linux 是这样 来进行驱动的:首先,我们必须提供一个 .ko 的驱动模块文件。我们要使用这个驱动程序, 首先要加载它, 我们可以用 insmod xxx.ko ,这样驱动就会根据自己的类型 (字符设备类型或 块设备类型, 例如鼠标就是字符设备而硬盘就是块设备) 向系统注册, 注册成功系统会反馈 一个主设备号, 这个主设备号就是系统对它的唯一标识。 驱动就是根据此主设备号来创建一 个一般放置在 /dev 目录下的设备文件。在我们要访问此硬件时,就可以对设备文件通过 open 、read 、write 、 close 等命令进行。而驱动就会接收到相应的 read 、write 操作而根据自 己的模块中的相应函数进行操作 了。 2 USB驱动程序如何应用 了解了上述理论后,我们就可以动手写驱动程序,如果你基本功好,而且写过 linux 下 的硬件驱动, USB的硬件驱动和 pci_driver 很类似,那么写 USB 的驱动就比较简单了,如果 你只是大体了解了 linux 的硬件驱动, 那也不要紧, 因为在 linux 的内核源码中有一个框架程 序可以拿来借用一下,这个框架程序在 /usr/src/~ (你的内核版本,以下同) /drivers/usb 下, 文件名为 usb-skeleton.c 。写一个 USB 的驱动程序最基本的要做四件事:驱动程序要支持的 设备、注册 USB 驱动程序、探测和断开、提交和控制 urb (USB 请求块) (当然也可以不用 urb 来传输数据,下文我们会说到) 。 2.1 驱动程序支持的设备 驱动程序支持的设备有一个结构体

文档评论(0)

***** + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档