前面学习了USB驱动的一些基础概念与重要的数据结构,那么究竟如何编写一个USB 驱动程序呢?编写与一个USB设备驱动程序的方法和其他总线驱动方式类似,驱动程序把驱动程序对象注册到USB子系统中,稍后再使用制造商和设备标识来判断是否安装了硬件。当然,这些制造商和设备标识需要我们编写进USB
驱动程序中。
USB 驱动程序依然遵循设备模型 —— 总线、设备、驱动。和I2C 总线设备驱动编...
分类:
系统相关 时间:
2016-06-24 16:14:24
阅读次数:
244
Spac5xx的实现是按照标准的USB VIDEO设备的驱动框架编写(其具体的驱动框架可参照/usr/src/linux/drivers/usb/usbvideo.c文件),整个源程序由四个主体部分组成:
设备模块的初始化模块和卸载模块,上层软件接口模块,数据传输模块。
具体的模块分析如下:
一、初始化设备模块
该驱动采用了显式的模块初始化和消...
分类:
系统相关 时间:
2016-06-24 16:13:53
阅读次数:
324
USB请求块(USB request block-URB)是USB设备驱动中用来与USB设备通信所用的基本载体和核心数据结 构,非常类似于网络设备驱动中的sk_buff结构体,是USB主机与设备通信的“电波”。
1. USB 设备驱动程序创建并初始化一个访问特定端点的urb,并提交给USB core;
2. USB core提交该urb到USB主控制器驱动程序;
3. USB 主控制器驱动程序根据该urb描述的信息,来访问USB设备...
分类:
系统相关 时间:
2016-06-12 01:56:06
阅读次数:
353
usb 驱动学习总结: usb 采用分层的拓扑结构,金字塔型,最多是7层。usb 是主从结构,主和主或者从和从之间不能交换数据。理论上一个usb主控制器最多可接127个设备,协议规定每个usb设备具有一个7bit的地址,范围是[0,127], 0地址是保留给为初始化的设备用的。 一个完整的USB数据 ...
分类:
其他好文 时间:
2016-06-01 00:09:47
阅读次数:
179
TP Link官方没有提供TL-WN725N 2.0的Linux驱动下载,折腾了我半天,试了各种方法。也有一部分原因是因为这机器还不能联网,有一些驱动因为缺少依赖并不成功安装。 后来终于在github上找到一个为树派开发的网上驱动(rtl8188eu),尝试下载源码编译安装,竟然可以成功驱动TL-W ...
分类:
其他好文 时间:
2016-05-13 10:45:38
阅读次数:
244
最近用C#写安装usb驱动,必须得调用API SetupCopyOEMInf: 于是在C#里这么写了: 其中DestinationInfFileName代表驱动成功安装后,inf文件在C:\Windows\inf目录下的绝对路径,这个inf文件名字和原inf文件不一样,但是内容是一模一样的,不知道为 ...
看到很多人给2013款的苹果笔记本安装双系统,特别是WIN7,到安装界面那里,触摸板和鼠标用不了,其实就是WIN7没有原生集成USB 3.0驱动造成的,下面简单介绍一下如何制作集成了USB 3.0驱动的WIN7安装U盘 在D盘下建立DRV目录,在DRV目录里面建立USB3文件夹、wim文件夹、mou ...
学习USB热插拔之前,先学习一些USB的硬件知识:
一、USB基础概念
1、硬件知识(USB插座和插头)
在最初的标准里,USB接头有4条线:电源,D-,D+,地线。我们暂且把这样的叫做标准的USB接头吧。后来OTG出现了,又增加了miniUSB接头。而miniUSB接头则有5条线,多了一条ID线,用来标识身份用的。标准USB口只有A型和B型。其中每一型又分为插头和插座,例如A...
分类:
系统相关 时间:
2016-04-04 18:16:02
阅读次数:
331
参考2.6.14版本中的driver/usb/input/usbmouse.c。鼠标驱动可分为几个部分:驱动加载部分、probe部分、open部分、urb回调函数处理部分。
一、驱动加载部分static int __init usb_mouse_init(void)
{
int retval = usb_register(&usb_mouse_driver);//注册鼠标驱动...
分类:
系统相关 时间:
2016-03-29 10:58:06
阅读次数:
308
Linux的设备驱动都遵循一个惯例——表征驱动程序(用driver更贴切一些,应该称为驱动器比较好吧)的结构体,结构体里面应该包含了驱动程序所需要的所有资源。用术语来说,就是这个驱动器对象所拥有的属性及成员。
一、usb-skeleton
下面先看一下Linux内核源码中的一个usb-skeleton(就是usb驱动的骨架咯),其定义的设备结构体就叫做usb-skel:s...
分类:
系统相关 时间:
2016-03-27 02:03:19
阅读次数:
460