工具与软件:
我目前的情况是需要以最快的速度流式传输数据。 但在这种数据爆炸的过程中,似乎 USB 缓冲区从最大可用空间(1024字节)变成0可用空间,并保持0可用空间,直到我尝试发回数据(直到360秒后)。 这里是我的硬件设置。 我有一个通过 USB 连接到 PC 的主控制器模块、还有一个通过 UART 连接到主控制器的下游从模块。 我让从模块进行数据收集、并将结果发送回主控制器。 我可以看到数据正在返回到主设备、我可以看到主设备然后将数据从 UART 缓冲区传输到 USB 缓冲区、但在某个时刻、通常在几秒钟内、当我将数据发送回 PC 时、主设备控制器停止发送数据。 我已经完成了一些调试并跟踪了它一直到 USBWRITEBUFFER 命令调用。 我发现,在那一点,似乎没有任何空间剩下的缓冲区,所以没有数据被发回。 在从模块停止发送回 UART 数据包之前、主控制器保持这种状态、USB 缓冲器上没有空间。 我做了一些时序分析、看起来主控制器在 UART 上接收到的每个数据包之间有大约120us 的时间。 现在、每个数据包的长度为8个字节。 看起来应该有足够的时间从 UART 缓冲区复制到 USB 缓冲区、并将数据发送回 PC。