urb数据结构【转】】的更多相关文章

转自:http://blog.csdn.net/myarrow/article/details/7025065 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 一 transfer_flags 二transfer_buffer transfer_dma transfer_buffer_length 三setup_packet setup_dma 四start_frame 五interval 六context 驱动设置了给下面的结束处理函数用的比如可以将自己驱动里描述自己设…
在上一章分析完USB总线驱动程序后, 接下来开始写一个USB驱动: 本节目的: 将USB鼠标的左键当作L按键,将USB鼠标的右键当作S按键,中键当作回车按键 参考/drivers/hid/usbhid/usbmouse.c(内核自带的USB鼠标驱动) 1.本节需要用到的宏如下: struct usb_device_id usbmouse_id_table []=USB_INTERFACE_INFO(cl,sc,pr); USB_INTERFACE_INFO()设置usb_driver驱动的id_…
USB设备驱动 ·  )USB Hub:每个USBHost控制器都会自带一个USB Hub,被称为根(Root)Hub.这个根Hub可以接子(Sub)Hub,每个Hub上挂载USB设备.一般PC有8个USB口,通过外接USB Hub,可以插更多的USB设备.当USB设备插入到USBHub或从上面拔出时,都会发出电信号通知系统.这样可以枚举USB设备,例如当被插入的时候,系统就会创建一个USB物理总线,并询问用户安装设备驱动.如图17-4所示为一个典型的USB Hub的示意图. 是控制管道,管道1…
学习目标:编写USB鼠标驱动程序,并测试(将USB鼠标的左键当作L按键,将USB鼠标的右键当作S按键,中键当作回车按键). 一.怎么写USB设备驱动程序?步骤如下: 1. 首先先定义全局变量usb_driver结构体,并在入口函数中通过usb_register()函数进行注册: 2. 分别写usb_driver结构体的成员函数:myusb_mouseprobe.myusb_mousedisconnect.myusb_mouseid_table --> 2.1 usb_driver的probe函数…
文章目录 1. 简介 2. Usb Core 驱动设备模型 2.1 Usb Device Layer 2.1.1 device (struct usb_device) 2.1.2 driver (struct usb_device_driver) 2.1.3 bus (usb_bus_type) 2.2 Usb Interface Layer 2.2.1 device (struct usb_interface) 2.2.2 driver (struct usb_driver) 2.2.3 bu…
1.urb 结构体USB 请求块(USB request block,urb)是USB 设备驱动中用来描述与USB 设备通信所用的基本载体和核心数据结构,非常类似于网络设备驱动中的sk_buff 结构体. struct urb { /* 私有的:只能由USB 核心和主机控制器访问的字段 */ struct kref kref; /*urb 引用计数 */ void *hcpriv; /* 主机控制器私有数据 */ atomic_t use_count; /* 并发传输计数 */ u8 rejec…
  USB分析 2013年11月11日 16:06:24 阅读数:1807 转载自:http://blog.csdn.net/aaa6695798/article/details/4776202 很久没有写<LDD3>的学习笔记了,趁着做项目的机会,学习一下USB的驱动程序,并写学习笔记. . 如果刚开始接触USB,会感觉无从下手,这种感觉就像我第一次接触嵌入式Linux一样.所以要对USB的硬件原理.数据传输和在USB电缆上传输的数据格式有一定的了解.所以推荐一篇<实用USB术语详解&…
转自:http://blog.csdn.net/zkami/article/details/2503829 urb传输的代码分析 如需引用,请注明出处blog.csdn.net/zkami 作者ZhengKui 分配一个urb,并初始化之.返回这个urb的指针usb_alloc_urb(int iso_packets, gfp_t mem_flags) (core/message.c)    ->urb = kmalloc(...);  分配一个urb    ->usb_init_urb(ur…
1.urb 结构体 USB 请求块(USB request block,urb)是USB 设备驱动中用来描述与USB 设备通信所用的基本载体和核心数据结构,非常类似于网络设备驱动中的sk_buff 结构体. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 struct urb { /* 私有的:只能由USB 核心和主机控制器访问的字段 */ struct kref kref; …
大家常说,一个设备通常有多个配置,配置通常有多个接口,接口通常有多个端点.接口代表逻辑上的设备,比如声卡分为 录音和播放.访问设备时,访问的是某个接口(逻辑设备).除了端点0之外,每个端点只支持一个传输方向,一种性质的传输传输数据时,读写某个端点,端点是数据通道. 有一个设备,如支持视频和音频的一个播放器.那么,对于上面提到的4个描述符,对它们设置的时候,它们分别对于哪一个描述符呢? 从我现在的理解来看,这样一个设备对应一个设备描述符,支持视频的功能对应一个接口描述符,支持音频功能的对应一个接口…