过程是这样:比如我在CBW包中要传输的数据是4096个,端点缓冲只有64字节,所以要分成64次传输.我看SCSI协议中的发送流程是:发送CBW-发送64次数据-设备返回CSW状态.现在的问题是主机端在发送数据的时间(即64次数据包传送时间)不能太长,否则超时,这是masstora...
全文
回复(6) 2008-02-15 11:33 来自版块 - USB驱动开发
表情
JJADKT期待答案中...(2008-06-16 13:45)
endloop我也有同样的问题!!(2008-03-10 15:33)
yang_zi_jiang由于我的FLASH容量的限制,采用widows格式话后的族的大小也就一个扇区,所以我采用的是512字节即一个扇区处理一次擦写,这样操作一个扇区时在文件稍大点时候就很容易超时.而用4K处理一次擦写的话,上面我说到的问题怎么避开?.(2008-03-10 08:51)
yang_zi_jiang谢谢wang397102.可以肯定是flash擦写时间长造成的,但是我的ram空间有限,最多也就有4k的ram做缓冲区.而且这样超过512字节的写,会不会有这样一个问题?因为windows传输过来的数据,比如DBR,FAT,它们都是512字节的,那么再用4k做缓冲区写一次的话,这...(2008-03-10 08:42)
wang397102可以在从设备端collect数据,到64k或者一次完成之后再写,不要64bytes就处理,可能是flash擦写时间太长导致timeout(2008-02-26 22:30)
yang_zi_jiang没有人碰见过吗,我见论坛里有提到过这个超时的问题,但都没有说这个问题怎么解决.不太清楚windows 的mass storage 驱动怎么处理的这个过程.或者能通过某个命令返回延时参数?做过的兄弟帮看看吧,给个提示,这个问题我觉得很普遍.(2008-02-25 11:27)

返回顶部