wdy9927
驱动老牛
驱动老牛
  • 注册日期2003-08-04
  • 最后登录2017-02-04
  • 粉丝0
  • 关注0
  • 积分89分
  • 威望143点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1520回复:2

EHCI host 读写u盘,遇到个问题,讨论高分

楼主#
更多 发布于:2005-01-21 10:00
        我是在给u盘发送完 Reset Recovery 就会出现这样的情况。

        发送一包数据,qh,qtd 都正常,甚至qh 的 Current qTD Pointer 寄存器已经是要发送的 qtd 的值了。 但就是什么数据都发送不出去,连个错误中断都没有。qh的 token 和 Buffer Pointer 也都有值了。但看起来就象是发送前的值,token 的Total Bytes to Transfer 还是要发送的长度,Status 还是 80h。Buffer Pointer 还是数据的起始地址。

        而且是在发送完以后,cbw阶段往往看不出什么问题,但接下来,有时 data 阶段出现这问题,有时csw 阶段出现。这样的情况又好象不是由于设备端点 stall 引起的?stall 的话也应该返回个错误状态,而且有的时候 data in 阶段可以,但是 csw 阶段就出现这种情况。        

        是不是主机和设备不同步了呢?不知道如果 u盘 在准备接收 csw,而我发了个 cbw 会有什么错误产生?
tsingkong
驱动牛犊
驱动牛犊
  • 注册日期2003-03-25
  • 最后登录2013-11-25
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-01-22 18:32
看这个贴子好累啊。第二段没看出什么意思来,可能我比较弱:)
看样子您是找不到问题的所在,您也糊涂了。
不过,您提到了U盘,还有cbw,csw,这样的话我就可以讨论一下了。
您的问题好象也是很多人都遇到过的data0/data1的问题。
详细讨论请看
http://www.driverdevelop.com/forum/html_85089.html?1106389837
还有您的最后一句:u盘不会准备接受csw,csw都是由host接收的。
同样的,cbw都是host发出的。
协议上说,device准备发送csw的时候,host发出了cbw,那么出现的情况是不可预测的。


mailto:tsingkong@163.com
wdy9927
驱动老牛
驱动老牛
  • 注册日期2003-08-04
  • 最后登录2017-02-04
  • 粉丝0
  • 关注0
  • 积分89分
  • 威望143点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2005-01-24 08:19
看这个贴子好累啊。第二段没看出什么意思来,可能我比较弱:)
看样子您是找不到问题的所在,您也糊涂了。
不过,您提到了U盘,还有cbw,csw,这样的话我就可以讨论一下了。
您的问题好象也是很多人都遇到过的data0/data1的问题。
详细讨论请看
http://www.driverdevelop.com/forum/html_85089.html?1106389837
还有您的最后一句:u盘不会准备接受csw,csw都是由host接收的。
同样的,cbw都是host发出的。
协议上说,device准备发送csw的时候,host发出了cbw,那么出现的情况是不可预测的。


 


上面的说法是有问题。哈哈,是应该像您最后说的那样。

帖子看过了,有可能是这个问题,这就试一下。



游客

返回顶部