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

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

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

下面的代码中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);

最新喜欢:

wdy9927wdy992...
sysdigger
驱动牛犊
驱动牛犊
  • 注册日期2004-06-07
  • 最后登录2004-07-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-06-30 17:21
我也碰到了同样的问题,有些设备读半拉就死了,不过我用的不是周立功的固件,是自己的,但软件是linux,如果你解决了这个问题,希望能给我点参考
Link_X
驱动牛犊
驱动牛犊
  • 注册日期2003-12-15
  • 最后登录2005-11-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-06-30 21:40
你大概觉得是哪里会出问题呢,现在要命的是,我找不到出问题的地方
sysdigger
驱动牛犊
驱动牛犊
  • 注册日期2004-06-07
  • 最后登录2004-07-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-07-01 10:37
你是设备端吗,我做的是HOST端,你的D12固件是在同一台机器下不同的操作系统做的测试吗,你的设备有没有挂起,或者中断处理的不够快,在读写数据的时候,有没有用示波器量过。相互探讨吧 :(
Link_X
驱动牛犊
驱动牛犊
  • 注册日期2003-12-15
  • 最后登录2005-11-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-07-02 18:13
唉,我手上没有相关的仪器。

我现在的状况就是,在linux中,对bulk pipe(主机读USB方向)进行 usb_bulk_msg 后就睡眠等待,从此硬件就好像没反应了,直到usb_bulk_msg超时退出。

我用的是周立功的D12开发板,用的自带的固件,在Windows下一切都是正常的,在linux下就是上述的情况了???????
游客

返回顶部