![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux USB驱动开发
文章平均质量分 96
小米拍客光
喜欢IT,喜欢技术,嗨起来~~~~~~~~~~~~~~
展开
-
Linux USB 驱动开发(二)—— USB 驱动几个重要数据结构
前面我们学习了USB 驱动的一个描述符,下面来学习 USB 驱动的几个重要数据结构一、struct usb_interface 接口函数[cpp] view plain copy struct usb_interface { struct usb_host_inte原创 2016-06-21 13:39:09 · 431 阅读 · 0 评论 -
Linux USB 驱动开发(三)—— 编写USB 驱动程序
前面学习了USB驱动的一些基础概念与重要的数据结构,那么究竟如何编写一个USB 驱动程序呢?编写与一个USB设备驱动程序的方法和其他总线驱动方式类似,驱动程序把驱动程序对象注册到USB子系统中,稍后再使用制造商和设备标识来判断是否安装了硬件。当然,这些制造商和设备标识需要我们编写进USB 驱动程序中。 USB 驱动程序依然遵循设备模型 —— 总线、设备、驱动。和I2C 总线设备驱动编原创 2016-06-21 13:40:46 · 1314 阅读 · 0 评论 -
Linux USB 驱动开发(一)—— USB设备基础概念
在终端用户看来,USB设备为主机提供了多种多样的附加功能,如文件传输,声音播放等,但对USB主机来说,它与所有USB设备的接口都是一致的。一个USB设备由3个功能模块组成:USB总线接口、USB逻辑设备和功能单元:a -- 这里的USB总线接口指的是USB设备中的串行接口引擎(SIE);b -- USB逻辑设备被USB系统软件看作是一个端点的集合;c -- 功能单元被客户软原创 2016-06-21 13:41:56 · 1202 阅读 · 0 评论 -
Linux USB 驱动开发(四)—— 热插拔那点事
学习USB热插拔之前,先学习一些USB的硬件知识:一、USB基础概念1、硬件知识(USB插座和插头) 在最初的标准里,USB接头有4条线:电源,D-,D+,地线。我们暂且把这样的叫做标准的USB接头吧。后来OTG出现了,又增加了miniUSB接头。而miniUSB接头则有5条线,多了一条ID线,用来标识身份用的。标准USB口只有A型和B型。其中每一型又分为插头和原创 2016-06-21 13:42:48 · 1268 阅读 · 0 评论 -
Linux USB 驱动开发(五)—— USB驱动程序开发过程简单总结
设备驱动程序是操作系统内核和机器硬件之间的接口,由一组函数和一些私有数据组成,是应用程序和硬件设备之间的桥梁。在应用程序看来,硬件设备只是一个设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作。 设备驱动程序是内核的一部分,主要完成以下功能:对设备的初始化和释放;把数据从内核传送到硬件设备和从硬件设备读取数据;读取应用程序数据传送给设备文件和回送应用程序请求的数据;检测和原创 2016-06-21 13:43:41 · 1438 阅读 · 0 评论 -
Linux USB 驱动开发实例(一) —— USB摄像头驱动实现源码分析
Spac5xx的实现是按照标准的USB VIDEO设备的驱动框架编写(其具体的驱动框架可参照/usr/src/linux/drivers/usb/usbvideo.c文件),整个源程序由四个主体部分组成:设备模块的初始化模块和卸载模块,上层软件接口模块,数据传输模块。具体的模块分析如下: 一、初始化设备模块 该驱动采用了显式的模块初始化和消原创 2016-06-21 13:44:58 · 2338 阅读 · 0 评论 -
Linux USB 驱动开发实例(二)—— USB 鼠标驱动注解及测试
参考2.6.14版本中的driver/usb/input/usbmouse.c。鼠标驱动可分为几个部分:驱动加载部分、probe部分、open部分、urb回调函数处理部分。 一、驱动加载部分[cpp] view plain copy static int __init usb_mouse_init(void) {原创 2016-06-21 13:45:49 · 1321 阅读 · 0 评论 -
Linux USB 驱动开发实例 (三)—— 基于USB总线的无线网卡浅析
回顾一下USB的相关知识 USB(Universal Serial Bus)总线又叫通用串行外部总线,它是20世纪90年代发展起来的。USB接口现在得到了广泛的应用和普及,现在的PC机中都带有大量的USB接口。它最大的特点就是方便通用、支持热插拔并且可以在一个接口上插上多个设备。当设备用电量小的时候,它还可以充当电源。它的众多优点使得它得到了广泛的应用。 在原创 2016-06-21 13:46:37 · 1327 阅读 · 0 评论 -
Linux 设备驱动开发思想 —— 驱动分层与驱动分离
前面我们学习I2C、USB、SD驱动时,有没有发现一个共性,就是在驱动开发时,每个驱动都分层三部分,由上到下分别是:1、XXX 设备驱动2、XXX 核心层3、XXX 主机控制器驱动 而需要我们编写的主要是设备驱动部分,主机控制器驱动部分也有少量编写,二者进行交互主要时由核心层提供的接口来实现;这样结构清晰,大大地有利于我们的驱动开发,这其中就是利用了Lin原创 2016-06-21 13:48:19 · 330 阅读 · 0 评论