c = usb_choose_configuration(udev); 2. 调用usb_set_configuration接口枚举和申请注册usb接口设备。 err = usb_set_configuration(udev, c); 当接口添加到设备驱动模型中后,设备驱动模型核心再去为接口设备在usb总线上匹配和绑定接口驱动。 3.1.2 USB HUB驱动 usb的hub驱动在内核中的定义如下: static struct ...
在USB的枚举阶段,会根据USB所处的状态调用usb_gadget_set_state()去设置USB设备的状态。 比如说在USB设备的枚举阶段,在composite_setup()函数中USB设备接收到了USB Host发过来的USB_REQ_SET_CONFIGURATION命令后调用set_config()设置相应的配置,这之后就会调用usb_gadget_set_state()去设置为USB_STATE_CONFIGURED状态。
17.0 CTL 00 09 01 00 00 00 00 00 SET CONFIG 29.1.0 28us ///设置接口/// 17.0 CTL 01 0b 00 00 00 00 00 00 SET INTERFACE 30.1.0 22ms ///获取最大逻辑单元/// 17.0 CTL a1 fe 00 00 00 00 01 00 GET MAX LUN 31.1.0 158us 17.0 DI 00 . 31.2.0 53ms ///USB大容量存储设备...
SET_CONFIGURATION:设置配置。 请参阅 USB 规范中的 9.4.7 节。 有关详细信息,请参阅如何选择 USB 设备的配置。默认情况下,KMDF 选择默认配置以及每个接口中的第一个备用设置。 客户端驱动程序可以调用WdfUsbTargetDeviceSelectConfigType方法并将WdfUsbTargetDeviceSelectConfigTypeUrb指定为请求选项,以这种方式更改默...
3、SETUT事务: 令牌包阶段——主机发送一个PID为SETUP的输出包给设备,通知设备要接收数据; 数据包阶段——比较简单,就是主机往设备送数据,注意,这里只有一个固定为8个字节的DATA0包,这8个字节的内容就是标准的USB设备请求命令,详见2.4。 握手包阶段——设备接收到主机的命令信息后,返回ACK,此后总线进入空闲状态...
struct usb_config_descriptor { __u8 bLength; //该结构体大小 __u8 bDescriptorType;//描述符类型(本结构体中固定为0x02) __le16 wTotalLength; //该配置下,信息的总长度(包括配置,接口,端点和设备类及厂商定义的描述符) __u8 bNumInterfaces; //接口的个数 __u8 bConfigurationValue; //Set_Confi...
Host 使用控制传输来识别设备、设置设备地址、启动设备的某些特性,对于控制传输,它首先发出"setup 事务"...
usb_set_configuration 函数定义: int usb_set_configuration(usb_dev_handle *dev, int configuration);设置当前设备使用的configuration,参数configuration 是你要使用的configurtation descriptoes中的bConfigurationValue, 返回0成功,<0失败( 一个设备可能包含多个configuration,比如同时支持高速和低速的设备就有对应...
IOCTL_UCMTCPCI_PORT_CONTROLLER_SET_RECEIVE_DETECT设置根据通用串行总线类型 C 端口控制器接口规范定义的RECEIVE_DETECT寄存器。 IOCTL_UCMTCPCI_PORT_CONTROLLER_SET_CONFIG_STANDARD_OUTPUT设置根据通用串行总线类型 C 端口控制器接口规范定义的CONFIG_STANDARD_OUTPUT寄存器。
IOCTL_UCMTCPCI_PORT_CONTROLLER_SET_RECEIVE_DETECT设置根据通用串行总线类型 C 端口控制器接口规范定义的RECEIVE_DETECT寄存器。 IOCTL_UCMTCPCI_PORT_CONTROLLER_SET_CONFIG_STANDARD_OUTPUT设置根据通用串行总线类型 C 端口控制器接口规范定义的CONFIG_STANDARD_OUTPUT寄存器。