我在linux内核空间开发USB驱动程序我的usb接口是两个批量端点(IN和OUT)。我使用ONE URB来发送和接收数据。我可以使用相同的usb_alloc_urb()来发送和接收数据。
我使用以下步骤使用urb发送和接收数据
usb_alloc_urb()--->只创造了一个
usb_fill_bulk_urb()--->使用usb_sndbulkpipe
usb_sumbit_urb()---->总结成功
usb_fill_bulk_urb()--->使用usb_rcvbulkpipe
usb_submit_urb()----->在这一点上,我得到ERROR -16。
以上步骤是否正确/可能?
谢谢
答案 0 :(得分:1)
您不能同时使用相同的URB进行两次转移 。
为了能够重用URB,您必须等到它完成(成功或出错)。
要使用全双工传输,您需要两个URB。
要获得较高的传输速率,您必须对URB进行流水线操作,即您需要更多。