Link_X
驱动牛犊
驱动牛犊
  • 注册日期2003-12-15
  • 最后登录2005-11-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1873回复:2

求教版主(50分):为什么我用周立功的D12固件,在Linux的驱动中无法对bulk pipe进行读呢?老是超时:(

楼主#
更多 发布于:2004-06-30 16:32
急死我了,这个问题困扰了我快一个月了:(

下面的代码中usb_control_msg总是能成功的返回。但usb_bulk_msg
在等待了10秒钟后就总是返回超时。我每次读的数据都不超过64字节的。

我也看过网上关于周立功固件在read bulk pipe时会超时错误的帖子,但还是不明白。

因为我用同样的固件在Windows的驱动下是能正常读的,没有出现过超时的问题。

我想问题应该是出在Linux这边,但始终找不到问题的根源,谁能救救我啊 !

// Fill SETUP phase data
dma_request_setup.request_type_8=0x40;
dma_request_setup.request_8=0x0C;
dma_request_setup.value_16=0;
dma_request_setup.index_16=0x0471;
dma_request_setup.length_16=6;

//Fill DATA phase data
dma_request_data.address_low_16=0;
dma_request_data.address_high_8=0;
dma_request_data.transfer_size_16=count_all;
dma_request_data.command_8=0x81;


// Now we start to setup DMA request ,using endpoint 0.
retval_setup=usb_control_msg( dev->udev, usb_rcvbulkpipe (dev->udev, 0),
dma_request_setup.request_8, dma_request_setup.request_type_8,
dma_request_setup.value_16,
dma_request_setup.index_16,
&dma_request_data,
dma_request_setup.length_16,
HZ*10);

retval = usb_bulk_msg (dev->udev,
usb_rcvbulkpipe (dev->udev,
dev->bulk_in_endpointAddr),
dev->bulk_in_buffer, (int)count_all,
&actually_one_msg_count, HZ*10);
chopin_1998
驱动牛犊
驱动牛犊
  • 注册日期2004-04-01
  • 最后登录2005-03-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-07-08 11:30
我不知道。

单独发一个usb_bulk_msg(),观察GL跳不跳,有条件用usb_bulk_msg点板子上的LED试试。

仔细检查调用参数是否正确(会不会发到别的EndP上什么的)?
适当加大超时等待的时间。

Linux Power!
ttfwind
驱动牛犊
驱动牛犊
  • 注册日期2005-06-07
  • 最后登录2009-08-21
  • 粉丝0
  • 关注0
  • 积分81分
  • 威望13点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-07-17 17:15
Re:求
我也是这个问题
你解决了没有啊!!给我联系吧:qq:411923432
游客

返回顶部