1、 设备描述符:struct usb_device_descriptor 2、 配置描述符:struct usb_config_descriptor 3、 接口描述符:struct usb_interface_descriptor 4、 端点描述符:struct usb_endpoint_descriptor 通过命令lsusb列出系统中所有的USB设备: 通过命令lsusb -v列出系统中所有的USB设备的各个描述符信息: 设备描述符: struct u...
从开发人员的角度看,每一个usb设备有若干个配置(configuration)组成,每个配置又可以有多个接口(interface)(我理解就是USB设备的一项功能),每个接口又有多个设置,而接口本身可能没有端点或者多个端点(end point) 2、USB 接口数据结构 struct usb_interface [cpp] view plain copy 1. struct usb_interface 2. { 3....
1、 设备描述符:struct usb_device_descriptor 2、 配置描述符:struct usb_config_descriptor 3、 接口描述符:struct usb_interface_descriptor 4、 端点描述符:struct usb_endpoint_descriptor 通过命令lsusb列出系统中所有的USB设备: 通过命令lsusb -v列出系统中所有的USB设备的各个描述符信息: 设备描述符: struct u...
USB 设备的初始化都是 Hub 这边发起的,通常我们写 USB 设备驱动程序都是在已经得到了一个 struct usb_interface 指针的情况下开始 probe 工作。可是我要问你,你的 struct usb_interface 从哪来的?老实说,要想知道从 USB 设备插入 USB 口的那一刻开始,这个世界发生了什么,你必须知道 Hub 是怎么工作的,Linux ...
1 struct usb_interface_descriptor { 2 __u8 bLength; 3 __u8 bDescriptorType; 4 5 __u8 bInterfaceNumber; 6 __u8 bAlternateSetting; 7 __u8 bNumEndpoints; 8 __u8 bInterfaceClass; 9 __u8 bInterfaceSubClass; 10 __u8 bInterfaceProtocol; ...
usb_interface描述一个接口信息 usb_host_interface描述一个interface的设置信息,包括usb_interface_descriptor,我们编写驱动就是针对这一层次的 usb_host_endpoint描述一个interdace的endpoint信息,包括usb_endpoint_descriptor,这是USB通信的最小单位,我们读写一个设备就是针对一个endpoint ...
1. struct usb_skel { 2. struct usb_device *udev; /* the usb device for this device */ 3. struct usb_interface *interface; /* the interface for this device */ 4. struct semaphore limit_sem; /* limiting the number of writes in progress */ ...
USB 设备驱动: 一、USB 描述符:(存在于USB 的E2PROM里面) 1、 设备描述符:struct usb_device_descriptor 2、 配置描述符:struct usb_config_descriptor 3、 接口描述符:struct usb_interface_descriptor 4、 端点描述符:struct usb_endpoint_descriptor
分别放在了include/linux/usb.h文件中的struct usb_host_interface、structusb_host_endpoint、struct usb_device、struetusb_host_config里,而描述符结构体本身定义在include/linux/usb/ch9.h里.并分别用struct usb_interface_descriptor、struct usb_host_endpoint、structusb_device_descriptor和struct usb_config_...
static void * skel_probe(struct usb_device *dev, unsigned int ifnum, const struct usb_device_id *id) 驱动程序需要确认插入的设备是否可以被接受,如果不接受,或者在初始化的过程中发生任何错误,probe函数返回一个NULL值。否则返回一个含有设备驱动程序状态的指针。通过这个指针,就可以访问所有结构中的回调函数...