Dear Sir:
客户现在在用imx287的USB设备读写这块遇到了速度瓶颈。
具体情况如下:
我们修改了内核代码中的f_hid.c对应的读操作的代码,然后用上位机测试程序连续发20M数据,通过bus hound监测,速度大约为900KB/S. f_hid.c封装了read接口给linux应用层调用,linux应用程序使用select监控文件句柄进行读操作。通过测试比较每个数据包的包号,发现在发送2M数据之后(我做了大约1M的KFIFO的队列缓存),开始出现大量丢包。
如果我修改上位机测试程序,每发送一个数据包,增加2 ms的延时,则数据不会出现丢失。但USB写的速度从原来的900KB/S 降到127KB/S。这样的速度无法进行音视频传输,基于此情况, 我修改了f_hid.c我能想到很多情况,经过验证还是会丢包。希望您能给我一些提示,或者方法。万分感谢。附件为修改后的f_hid.c。
用的高速的口,PC端使用的是libusb的无驱设计,输入报文长度为64字节,输出报文长度为1024个字节。使用HID的方式进行数据收发。
使用的是高速USB的描述符。不知道有什么建议没有?