当前位置: 技术问答>linux和unix
USB驱动百分紧急请教高手!!
来源: 互联网 发布时间:2016-02-24
本文导语: 请教大家一个问题--我的USB驱动程序注册成功之后,probe函数里用dev->udev = usb_get_dev(interface_to_usbdev(interface));找到interface对应的usb_device了,但为什么用usb_control_msg往设备控制端点写数据的时候返回错误-19(该错误...
请教大家一个问题--我的USB驱动程序注册成功之后,probe函数里用dev->udev = usb_get_dev(interface_to_usbdev(interface));找到interface对应的usb_device了,但为什么用usb_control_msg往设备控制端点写数据的时候返回错误-19(该错误信息好像是:-ENODEV),此时印udev->state为0 (0的意思是:USB_STATE_NOTATTACHED)
请教我的驱动程序应该加些什么?--为什么udev->state为NOTATTACHED?
--我是照Linux Device Driver第三版的skeleton写的,2.6内核。
请教我的驱动程序应该加些什么?--为什么udev->state为NOTATTACHED?
--我是照Linux Device Driver第三版的skeleton写的,2.6内核。
|
usb_control_msg 函数允许一个驱动发送和结束 USB 控制信息
函数 usb_control_msg 不能被从中断上下文或者持有自旋锁中被调用. 还有, 这个函数不能被任何其他函数取消, 所以当使用它时要小心; 确认你对驱动的 disconnect 函数了解足够多, 在允许它自己被从内存卸载之前完成等待调用.
函数 usb_control_msg 不能被从中断上下文或者持有自旋锁中被调用. 还有, 这个函数不能被任何其他函数取消, 所以当使用它时要小心; 确认你对驱动的 disconnect 函数了解足够多, 在允许它自己被从内存卸载之前完成等待调用.
|
probe运行并不等于注册成功,使用lsusb命令,看看能不能正确看到设备,有的时候会有两个设备使用同一个设备号的情况,这时候两个设备的probe都会执行,但是谁最后得到设备,就只有天知道了。
|
有一个是端点0是控制端点--听说是所有设备都有的--为什么这里没有找到?
======================================
正因为每个USB设备有一个,而且只有一个,所以在INTERFACE的SETTING里是找不到的(因为不用找嘛)
======================================
正因为每个USB设备有一个,而且只有一个,所以在INTERFACE的SETTING里是找不到的(因为不用找嘛)
|
keyi 把代码贴出来帮你调一下
|
学习。
我觉得LDD3采用的内核并不是最新的,内核不同部分函数就可能改变,而且代码有些分散,我建议你静下心来理一遍usb内核程序,函数调用关系,usb驱动是比较复杂的,祝你好运!
我觉得LDD3采用的内核并不是最新的,内核不同部分函数就可能改变,而且代码有些分散,我建议你静下心来理一遍usb内核程序,函数调用关系,usb驱动是比较复杂的,祝你好运!
|
中断有没有呢
驱动注册了,不一定能找到设备,正确的给设备发消息
驱动注册了,不一定能找到设备,正确的给设备发消息
|
学习..
|
mark...
找到工作了再看这本书...
大家一起努力学习提高...
找到工作了再看这本书...
大家一起努力学习提高...
|
我也不明白,照理说应该可以写才对,而且也是很简单的一个API调用:(
|
mark
|
mark too
|
最近也在弄驱动 关注!
|
mark!!
|
学习,
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。