阅读:2800回复:33
read10 出现timeout 或者 pending?
是怎么回事啊? read10 要求读4k字节时发生超时timeout 和pending情况,但是刚开始要求发送512字节时没问题。 有人知道什么原因嘛?
|
|
沙发#
发布于:2004-04-22 18:55
没有人能回答我这个问题么?
|
|
板凳#
发布于:2004-04-21 22:23
我疑惑的是普通的u盘为什么会对一个read10有两个DI,然后发csw。
|
|
地板#
发布于:2004-04-21 22:20
大侠,我不懂你的意思啊? csw 与cbw的tag是一致的啊。
|
|
地下室#
发布于:2004-04-21 18:30
第一次读1个page的时候就错了啊!好像你的csw包数据有错啊!要跟cbw对应啊!
|
|
5楼#
发布于:2004-04-21 15:23
你能不能等发完才去写串口?写串口可以不用中断呀。
由于D12是电平触发,而我的MCU没有这功能。所以我索性就不用中断了。这样也省事。否则多重中断嵌套也会有些预料不到的问题。 |
|
6楼#
发布于:2004-04-21 15:20
我说的没有关系是指一般情况下正常发送数据是完全可以在他要求的时间内完成的。
我是用4位机+汇编完成U盘和文件系统的。所以你们应该更有信心才对。呵呵 |
|
7楼#
发布于:2004-04-21 14:40
比我还可怜。。呵呵
|
|
8楼#
发布于:2004-04-21 14:35
老大,我的在第一次READ10,读512字节的时候就出现了bus reset
的现象了,现在都没有搞定。我用的是ARM7的MCU加USBN9604的片子。可以一起讨论一下。 |
|
9楼#
发布于:2004-04-21 14:02
跟timging应该有关系把,如果在规定时间内没有把主机要得数据发过去,他就重启,我想继续发都没有办法。
另外往串口写数据虽然会影响我能够发送的数据量,但是没有规律,我死了。 |
|
10楼#
发布于:2004-04-21 13:57
要求传送4k,就必须传送4k,这个我已经试过了,现在的估计是时序的问题,或者是刚才说得清空fifo的问题。
另外我看bushounde数据时发现了这样一个问题,和大家讨论一下: 再device里,usb不是可以分层4层嘛。 我看到的情况时,回应read4k命令时,首先di4k,由usb massstorage device(设备中的第三层),然后同样由他发csw,然后再bushounds上看到(设备中的第四层)发di,同样是4k数据。然后这次传送结束,ssts为ok. 普通u盘的数据就是这样子的,我现在的数据是因为发送不到4k系统就停止,但是再bushound上看到第四层设备接着发di,4k,然后ssts说超时。 |
|
|
11楼#
发布于:2004-04-21 13:54
其实跟TIMING没关系。只要你不多发也不少发就可以了。
|
|
12楼#
发布于:2004-04-21 13:51
这么说原因查出来了?恭喜恭喜。
|
|
13楼#
发布于:2004-04-21 13:50
其中还有一个因素是我往串口打印了一些调试信息,真是痛苦死了。
有人知道timing要求嘛? |
|
14楼#
发布于:2004-04-21 13:49
楼上,你的可以不代表楼主的就可以。
因为你俩硬件芯片不是同一个。只能说有些芯片传送大包会超出windows系统缺省时间。 |
|
15楼#
发布于:2004-04-21 13:44
iamchine :
不会吧。我就是用XP的驱动。传多少都没问题呀。我看过命令最大要求传过80H个块。是8*16*512个BYTE |
|
16楼#
发布于:2004-04-21 13:42
更正一点。前面说的关于发的CSW的只是在响应WRITE10时候才需要。
READ10是不需要。开始没看清楚以为是写。 |
|
17楼#
发布于:2004-04-21 13:41
估计你用的是Windows自带驱动,肯定是超时问题,如果自己写驱动没有此问题。建议你一次传少点或自己写驱动读写。
|
|
18楼#
发布于:2004-04-21 13:40
这么看来跟我碰到的类似。我以前也是不定的。反正就是会频繁RESET。你的USB需要发送完后晴空吗?反正D12就是这样。不晴空HOST就人为还有数据。就再要。结果D12自动重发。这样就乱了。
|
|
19楼#
发布于:2004-04-21 13:37
我以前也碰到RESET的问题。原因是D12芯片发送后没有清空。结果主机总认为里面还有数据要收,所以就又要求读。但是实际上我没有数据了。或者有数据,可是需要重新写入。可是D12会自动把里面的数据重发。结果HOST就人为不对了。所以就RESET。
供你参考 |
|
上一页
下一页