我们正在为WinCE 6开发一个以太网设备的USB驱动程序。
我们正在寻找性能问题,并可能缩小到他们的USB堆栈,使用代码的分析。在Tx路径中95%的时间是在IssueBulkTransfer中进行的,这使得驱动程序在内部排队。TX-完整的例行调用与IssueBulkTransfer不同步.
我们用USB分析仪检查了USB带宽的使用情况,发现它占总带宽的20-30%。因此,硬件足够快,可以跨接口传输数据。
有了上述发现,USB总线驱动程序和USB HCD驱动程序就出现了瓶颈。
发布于 2014-01-22 22:41:52
你在使用同步传输吗?如果使用异步数据包,则可以为tx或rx排队多个数据包,主机驱动程序不必等到驱动程序收到完成通知才发出新的tx或rx请求。这可能允许您使用更多的带宽。您还可以使用HalAllocateCommonBuffer或为缓冲区保留一些物理内存范围来分配缓冲区。这样,如果驱动程序可以使用DMA,则可以避免在驱动程序中复制。您没有提供您的HW架构的详细信息,很难估计您可能期望的性能水平。
https://stackoverflow.com/questions/21291984
复制相似问题