阅读:2591回复:3
usb的驱动问题,关于usb_control_msg和usb_submit_urb
我正在做linux下的usb设备驱动,我理解下来usb设备的控制传输读写应该用usb_control_msg来请求,而中断读写用usb_submit_urb,如果我理解对的话我想知道这两个函数怎么返回真正读写到的数据长度呢?在usb_bulk_msg中通过int *actual_length参数的到,这两个函数呢?还有就是有谁知道构件urb结构的时候,它的complete回吊指针是用来具体实现哪些功能的么?能否举个例子!!谢谢!
|
|
|
沙发#
发布于:2003-05-22 13:49
怎么没有人回啊?? 那么不热心么? 不是很多人做好了驱动的么?
|
|
|
板凳#
发布于:2003-05-23 13:03
linux/drivers/usb下那么多例子啊,认真读一读,肯定有你想要的答案!说真的,我除了那下面的例子还没看过别的什么书,包括那篇《how to write a linux usb module》也是我自己的经验总结而已。
|
|
|
地板#
发布于:2003-05-25 22:32
两年前看过usb的内核原码,但现在细节都不记得了。只记得usb_control_msg最终也是调用usb_submit_urb的。usb_submit_urb是一个总的服务函数。大概也是从actual_length得到长度的。Complete指针指向的函数在一个请求完成后被调用。为你的驱动提供一个进行“善后处理”的机会。
|
|