lxb_gd
驱动太牛
驱动太牛
  • 注册日期2002-01-16
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分72408分
  • 威望362391点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
20楼#
发布于:2002-12-25 11:17
w77e58+sl811hs
qianyu123
驱动小牛
驱动小牛
  • 注册日期2002-11-22
  • 最后登录2007-09-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
21楼#
发布于:2002-12-25 11:37
   你的系统和我的差不多,你的CBW格式呢?
我的READ10命令如下:BYTE READ10[31]=0x55,0x53,0x42,0x43,0,0,0,0,0x00,0x02,0,0,0x80,0,0x0a,
                 0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00};

lxb_gd
驱动太牛
驱动太牛
  • 注册日期2002-01-16
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分72408分
  • 威望362391点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
22楼#
发布于:2002-12-25 11:48
我写了个函数,先发cbw固定部分,参数为bmcbwflags,transferlen,
和命令数组指针。
cbw = 0x55 0x53 0x42 0x43 0 0 0 0 0x1f 0x00 0 0 0x80 0 0x10
后面就是上面贴的命令了。
lxb_gd
驱动太牛
驱动太牛
  • 注册日期2002-01-16
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分72408分
  • 威望362391点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
23楼#
发布于:2002-12-25 11:50
cbw = 55 53 42 43 00 00 00 00 1f 00 00 00 80 00 10
后面就是上面贴的read10命令。
怎样?
qianyu123
驱动小牛
驱动小牛
  • 注册日期2002-11-22
  • 最后登录2007-09-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
24楼#
发布于:2002-12-25 12:00
  我的READ10命令如下:BYTE READ10[31]=0x55,0x53,0x42,0x43,0,0,0,0,0x00,0x02,0,0,0x80,0,0x0a,
0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00};
  上面这一串命令就是CBW,命令体包含在CBW中,然后你读512字节,旧可以读CSW了。
  你的命令长度0X1F出现在CBW中,肯定不对。

lxb_gd
驱动太牛
驱动太牛
  • 注册日期2002-01-16
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分72408分
  • 威望362391点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
25楼#
发布于:2002-12-25 16:01
我把cbw中的dcbwdatatransferlength改为0x200,但灯还是闪,不停的读,csw还是没读到!没法了!
qianyu123
驱动小牛
驱动小牛
  • 注册日期2002-11-22
  • 最后登录2007-09-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
26楼#
发布于:2002-12-25 16:09
   你的命令长度也不对,是0X0A吧。你的是0X10。
  
lxb_gd
驱动太牛
驱动太牛
  • 注册日期2002-01-16
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分72408分
  • 威望362391点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
27楼#
发布于:2002-12-25 16:36
改了,还是没作用。但有一个新发现:
我死循环的读,全速执行后(执行时还是闪),再暂停,灯就不闪了,也受到csw,结果ok,但不知道循环了多少?奇怪????
lxb_gd
驱动太牛
驱动太牛
  • 注册日期2002-01-16
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分72408分
  • 威望362391点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
28楼#
发布于:2002-12-25 17:37
是不是我的缓冲区太小(256bytes),u盘读一次返回512bytes,导致我这样的问题呢?
各位DX帮帮忙! :(
lxb_gd
驱动太牛
驱动太牛
  • 注册日期2002-01-16
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分72408分
  • 威望362391点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
29楼#
发布于:2002-12-25 17:47
我估算了一下,全速运行大约7秒后,灯停止闪烁,CSW有效读出,显示OK,我的CBW中长度为0X200,READ10命令返回长度为0X200,一个扇区的读出,需要这么长的时间吗?真想不明白!
TornadoII
驱动牛犊
驱动牛犊
  • 注册日期2002-10-15
  • 最后登录2003-06-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
30楼#
发布于:2002-12-26 08:37
cbw = 0x55 0x53 0x42 0x43 0 0 0 0 0x1f 0x00 0 0 0x80 0 0x10
后面就是上面贴的命令了。


后面命令的长度 0x10 也应该是变的。

Read10里,读出的块数为0x100,这可是一个很长的数据啊,你可能没有接收完吧?
lxb_gd
驱动太牛
驱动太牛
  • 注册日期2002-01-16
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分72408分
  • 威望362391点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
31楼#
发布于:2002-12-26 09:20
Tornado 兄:谢谢您的提醒,我的问题解决了。问题出现在read10命令中,返回的块数问题上,我写了0x100个快,当然要接受久点啦。
cbw中的命令长度为0x10没问题,只要前面几个有效字节对就行了,多余的添0x00.解决后,才发现这个问题很傻。不知道如何给分您呢?真的很感谢您!
qianyu123兄:关于您认为不能循环是用了双启动u盘的问题,但为什么我的就可以呢?我的型号是odh064.我觉得可能是您的firmware的问题!比如data toggle 等。希望能尽快解决。
上一页 下一页
游客

返回顶部