#define USB_DT_DEVICE_SIZE 18 代码语言:javascript 代码运行次数:0 运行 struct usb_config_descriptor { __u8 bLength; __u8 bDescriptorType; __le16 wTotalLength; __u8 bNumInterfaces; __u8 bConfigurationValue; __u8 iConfiguration; __u8 bmAttributes; __u8 bMaxPower; } __attribute__ ((pa...
struct libusb_config_descriptor *_config = calloc(1, sizeof(*_config));首先分配一个libusb_config_descriptor用于存放标准的配置描述符。 接着使用parse_configuration方法解析出标准配置描述符及其他描述符。 解析标准配置描述符 if (size < LIBUSB_DT_CONFIG_SIZE) {如果原生描述符的大小,小于一个标准配置...
#define USB_DT_DEVICE_SIZE 18 10.2.2 配置描述符 每个USB 设备都提供了不同级别的配置信息,可以包含一个或多个配置,不同的配置使设备表现出不同的功能组合(在探测/连接期间需从其中选定一个),配置由多个接口组成。 /* 参考 include\uapi\linux\usb\ch9.h */ struct usb_config_descriptor { __u8 bLen...
285 #define USB_DT_CONFIG_SIZE 9 bLength: 配置描述符长度,配置描述符长度为9字节大小。 bDescriptorType: 描述符类型,配置描述符类型为0x02。 wTotalLength: 配置描述符信息总的大小,包括接口描述符、端点描述符等等。 bNumInterfaces: USB接口数量。 bConfigurationValue: 当使用SetConfiguration和GetConfiguration...
desc.bLength = USB_DT_DEVICE_SIZE; gi->cdev.desc.bDescriptorType = USB_DT_DEVICE; gi->cdev.desc.bcdDevice = cpu_to_le16(get_default_bcdDevice()); /* 设置configfs的usb_gadget_driver */ gi->composite.gadget_driver = configfs_driver_template; gi->composite.gadget_driver.function = ...
... length = max((int) le16_to_cpu(desc->wTotalLength),USB_DT_CONFIG_SIZE); //通过wTotalLength,知道实际数据大小 bigbuffer = kmalloc(length, GFP_KERNEL); //然后再来分配足够大的空间 ... ... result = usb_get_descriptor(dev, USB_DT_CONFIG, cfgno,bigbuffer, length); //在调用一次...
Linux内核USB驱动架构:USB卷五_USB设备枚举过程
{//设备描述符.bLength =sizeof(g_cdcMasterDeviceDesc),.bDescriptorType = USB_DDK_DT_DEVICE,.bcdUSB =CpuToLe16(BCD_USB),.bDeviceClass =0,.bDeviceSubClass =0,.bDeviceProtocol =0,.bMaxPacketSize0 = USB_MAX_PACKET_SIZE,.idVendor = CpuToLe16(DEVICE_VENDOR_ID),.idProduct = CpuToLe...
/var/davinci/driver/upgrade-tool --device_index -1 --component Usr_Base_Config --path userBaseConfig.bin 出现如下回显,表示升级userBaseConfig.bin文件成功。 {"device": 0, "succeed"} 升级“dt.img”文件。具体请参见生效DTB文件。 升级完成后重启生效。
{ // 设备描述符 .bLength = sizeof(g_cdcUsbFnDeviceDesc), .bDescriptorType = USB_DDK_DT_DEVICE, .bcdUSB = CpuToLe16(BCD_USB), .bDeviceClass = 0, .bDeviceSubClass = 0, .bDeviceProtocol = 0, .bMaxPacketSize0 = USB_MAX_PACKET_SIZE, .idVendor = CpuToLe16(DEVICE_VENDOR_ID),...