v208 usb host 4g rndis模块,bulk in 批量传输,中断响应UIF_TRANSFER,读取RX_LEN ,同时抓包 ,发现数据包大于64,最大到512, 但是在枚举端点描述符的时候,设备返回的wMaxPacketSize是64,且这个模块在windows上面是返回DATA 64字节的(抓包)。
查了一下手册, R16_UH_RX_MAX_LEN 寄存器高速的才有,全速的找不到,请问怎么设置,或者哪个步骤有问题?
v208 usb host 4g rndis模块,bulk in 批量传输,中断响应UIF_TRANSFER,读取RX_LEN ,同时抓包 ,发现数据包大于64,最大到512, 但是在枚举端点描述符的时候,设备返回的wMaxPacketSize是64,且这个模块在windows上面是返回DATA 64字节的(抓包)。
查了一下手册, R16_UH_RX_MAX_LEN 寄存器高速的才有,全速的找不到,请问怎么设置,或者哪个步骤有问题?
你好,USBFS除了同步传输,正常的最大包长是64字节。可以看下数据是否正确,主机RX LEN寄存器是USBOTG_H_FS->RX_LEN
读的寄存器是USBOTG_H_FS->RX_LEN? 0x50000008,? ? 超出64的部分读出来的数据也是正确的,最大包变成了512了。
而且是几个 rndis 包粘在一起了,正常我的理解是 一次事务一个包,然后TRANSFER中断响应一次,我处理包。 现在一次事务多个包在里面,且有时候出现半包,下次中断响应接收到剩下的。
你好,这边搭的环境测试是正常的,可以把代码、相关打印和抓包的截图发到邮箱zc@wch.cn
截图如下