0

我正在linux內核空間開發一個USB驅動程序,其中我的USB接口作爲兩個批量端點(IN和OUT)。我使用一個URB來發送和接收數據。我可以使用相同的usb_alloc_urb()發送和接收數據嗎?在USB中可以在同一URB上發送和接收數據嗎? LINUX

我使用下面的步驟來發送和使用URB

usb_alloc_urb使用usb_sndbulkpipe

usb_sumbit_urb接收數據()--->創建只有一個的

usb_fill_bulk_urb()--->( )---->成功sumbited

usb_fill_bulk_urb()使用usb_rcvbulkpipe

usb_submit_urb(--->)----->在第是我得到錯誤-16點。

以上步驟是否正確/可能?

謝謝

回答

1

不能使用相同的URB兩個傳輸同時

爲了能夠重用URB,你必須等待,直到它已完成(成功或錯誤)。

要使用全雙工傳輸,您需要兩個URB。

要獲得高傳輸率,您必須管道URB,即您需要更多。

+0

如果對於IN(A)和OUT(B,C)ENDpoint有3個URB,如A,B,C。在URB A在fill_bulk_urb中使用usb_sndbulkpipe(管道)的情況下,URB B和C正在使用fill_bulk_urb中的usb_rcvbulkpipe(管道)。現在接收到的數據將到哪個URB? – kar

+0

由於錯誤的終點,它將無處可去。 –

相關問題