阅读:1873回复:2
求教版主(50分):为什么我用周立功的D12固件,在Linux的驱动中无法对bulk pipe进行读呢?老是超时:(
急死我了,这个问题困扰了我快一个月了:(
下面的代码中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); |
|
沙发#
发布于:2004-07-08 11:30
我不知道。
单独发一个usb_bulk_msg(),观察GL跳不跳,有条件用usb_bulk_msg点板子上的LED试试。 仔细检查调用参数是否正确(会不会发到别的EndP上什么的)? 适当加大超时等待的时间。 |
|
|
板凳#
发布于:2005-07-17 17:15
Re:求
我也是这个问题 你解决了没有啊!!给我联系吧:qq:411923432 |
|