我正在编写代码以了解飞思卡尔Kinetis微控制器上的USB外设。我已经设法在Linux主机上进行枚举,我可以发送&使用EP0上的供应商自定义代码接收数据包,与libusb测试程序进行交互。
看起来我可以在微控制器上配置其他控制端点(非零端点号),但我没有看到一种方法使libusb发送/接收控制传输到这些端点。 (libusb_control_transfer
不需要端点号,但libusb_bulk_transfer
和libusb_interrupt_transfer
会这样做。)
非零控制端点是如此不常见或不必要,以至于不值得为它们打扰?有没有办法让libusb执行控制事务到非零端点?
答案 0 :(得分:2)
有没有办法让libusb执行到非零端点的控制事务?
您可以尝试修改异步I / O API的endpoint
结构中的libusb_transfer
字段。
但如果您的微控制器实际上可以支持非零控制端点,那将会让我感到惊讶 - 并非如此。
在实践中,您宁愿使用中断或批量端点。两者都有较少的开销 - 通过批量传输允许更高的吞吐量(参见例如USB 2.0 SPEC表5-2与表5-9)。