nuc980使用usb0作为从机,在linux内核驱动中开启gadget hid功能,从机需要和pc上位机进行大数据量(1k)通信时,从机每发一包(一个packet 8字节),必须延时50ms以上,不然上位机会丢失部分信息,用usb bus hound抓包工具查看,如果监控了从机设备号usb input device数据是没问题,但是Hid-compliant device数据就丢失了。我自己尝试改了linux内核里面hid.c文件
static struct usb_composite_driver hidg_driver = {
.name = "g_hid",
.dev = &device_desc,
.strings = dev_strings,
.max_speed = USB_SPEED_FULL,//by zl
.bind = hid_bind,
.unbind = hid_unbind,
};
把高速改成全速,但是好像没起到作用,设备信息里还是高速。请问,从机一次性需要把许多数据发给上位机,每发一个packet必须长时间延时,这是什么原因导致的。
|