如何在非零端点(libusb)上发送USB控制事务?

如何在非零端点(libusb)上发送USB控制事务?,usb,linux-device-driver,microcontroller,device-driver,libusb,Usb,Linux Device Driver,Microcontroller,Device Driver,Libusb,我正在写代码来了解飞思卡尔Kinetis微控制器上的USB外设。我已经设法在Linux主机上完成了枚举,我可以使用EP0上的供应商自定义代码发送和接收数据包,并与libusb测试程序进行交互 看起来我可以在微控制器上配置其他控制端点(非零端点编号),但我看不到将libusb发送/接收控制传输到这些端点的方法。(libusb\u control\u transfer不需要端点号,但libusb\u bulk\u transfer和libusb\u interrupt\u transferdo。)

我正在写代码来了解飞思卡尔Kinetis微控制器上的USB外设。我已经设法在Linux主机上完成了枚举,我可以使用EP0上的供应商自定义代码发送和接收数据包,并与libusb测试程序进行交互

看起来我可以在微控制器上配置其他控制端点(非零端点编号),但我看不到将libusb发送/接收控制传输到这些端点的方法。(
libusb\u control\u transfer
不需要端点号,但
libusb\u bulk\u transfer
libusb\u interrupt\u transfer
do。)

非零控制端点是否如此罕见或不必要,以至于不值得使用它们?有没有办法让libusb执行到非零端点的控制事务

有没有办法让libusb执行到非零端点的控制事务

您可以尝试修改异步I/O API的
libusb\u transfer
结构中的
endpoint
字段

但若你们的微控制器真的能支持非零控制端点的话,我会感到惊讶——并不是很多


实际上,您宁愿使用中断端点或批量端点。两者都有较少的开销-允许更高的批量传输吞吐量(例如,请参见USB 2.0规范表5-2与表5-9)。

谢谢……我使用了libusb的同步部分,所以我复制并修改了send_控制函数,将不同的端点插入到它构建的异步结构中。不高兴,但我没有一个协议分析程序来判断是否有包出去了。(微控制器文档出错也不足为奇。)无论如何,我将尝试其他类型的端点,看看会发生什么。