打印

【求教】linux下usb驱动程序:usb_submit_urb

[复制链接]
3270|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
reconfig_alic|  楼主 | 2011-7-20 09:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
环境:
       设备上使用的是68013,bulk in端点设置的是64bytes,
       usb host是移植了linux的s3c2440的usb控制器。
       usb1.1的协议。

出错现象:
       读数据的时候,当我设备一发送超过64bytes的时候,就报错:数据溢出(-75)。

疑问:
      想获得大量的数据,使用 usb_submit_urb函数,直接把urb丢给控制器,usb的控制器会自动把它分成很多包来完成的。可是我这个设备上的fifo的数据只要大于64byte,就会报错。
      不清楚usb_submit_urb这个函数,提交一次urb到底是只能处理一个数据包(即一次事务处理),还是一次传输(很多个数据包)?
       再,我对68013不太懂,有没有可能是它设置不对?
       求达人指点。

相关帖子

沙发
reconfig_alic|  楼主 | 2011-7-22 11:06 | 只看该作者
本帖最后由 reconfig_alic 于 2011-7-22 11:08 编辑

这个问题还是我自己来解答,linux的usb core确实会自己打包,我们只需要把自己想要的数据大小(当然可以大于64bytes)通过usb_submit_urb这个函数发给usb core就可以了。
解决办法是买了个usb(68013) 设备开发板,通过标准的bulkloop实验,证明驱动没有问题。也就是我们山寨的设备出问题了。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

26

帖子

1

粉丝