我正在 linux 内核中开发小型 USB 驱动程序,我的设备有两个批量端点(IN 和 OUT)。
我有两个 URB(假设)urb A 和 urb B。我已经提交了许多来自 URB A 的接收请求,一段时间后我使用 usb_bulk_msg() 向设备发送命令并提交来自 URB B 的接收请求。
问题是我总是收到 URB A 的所有回复。
我的问题如何收到特定 URB 的回复。
是否可以为 USB 中的单个端点维护多个不同的 URB?
谢谢
请您参考如下方法:
当您为单个端点提交多个 URB 时,它们会被放入队列中,第一个数据传输将由第一个提交的 URB 处理。
如果您收到不同类型的数据,所有 URB 的完成处理程序都必须检查实际数据。
