rt543
驱动牛犊
驱动牛犊
  • 注册日期2004-02-26
  • 最后登录2005-09-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1870回复:4

请教一个U盘固件的问题!

楼主#
更多 发布于:2005-01-30 10:54
  我想用ARM7和USBN9603做一个U盘,现在程序进入响应UFI命令阶段,任务栏已经出现U盘的标志,显示有mass storage连接。
   根据各位大侠所说,当响应完12h命令后,就应该出现盘符,可是我的盘符没有出现,主机继续发出23h命令,我回答这个命令后,主机接着又发25h,回答后接着是28h(我28h的响应程序还没编好,于是主机就不停的重发28h),这是为什么啊?
tsingkong
驱动牛犊
驱动牛犊
  • 注册日期2003-03-25
  • 最后登录2013-11-25
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-01-30 11:19
不错嘛。等你编好28h的响应程序就好了。
一个U盘插上,Windows要连续的发送12h(INQUIRY),23h(READ FORMAT CAPACITIES),25h(READ CAPACITY),28h(READ10),最后的这个READ10是要读取U盘的MBR。
如果这个READ10成功了,主机可能还会发送MODE SENSE命令。
然后,是一系列的READ10……
你可以用Bus hound看看可用的U盘嘛。
mailto:tsingkong@163.com
rt543
驱动牛犊
驱动牛犊
  • 注册日期2004-02-26
  • 最后登录2005-09-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-01-31 15:43
  据你所说28h(READ10)读取U盘的MBR,那么命令中的Logical Block Address值就应该总是0才对吧?可是我用Bus hound看主机发出的命令中Logical Block Address值是变化的,这是为什么?这个命令到底是有什么作用啊?
  还有,在28h之后,主机又发了个1ah,这个命令的格式是什么啊,我在UFI Command Specification中找不到这个命令!
  
tsingkong
驱动牛犊
驱动牛犊
  • 注册日期2003-03-25
  • 最后登录2013-11-25
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-02-02 21:49
 据你所说28h(READ10)读取U盘的MBR,那么命令中的Logical Block Address值就应该总是0才对吧?可是我用Bus hound看主机发出的命令中Logical Block Address值是变化的,这是为什么?这个命令到底是有什么作用啊?
  还有,在28h之后,主机又发了个1ah,这个命令的格式是什么啊,我在UFI Command Specification中找不到这个命令!
  
 


在主机需要读取MBR的时候,Logical Block Address肯定是0。
不过,如果需要读取其它的扇区,那么LBA就肯定不是0了。
毕竟MBR只有512字节。

1A在SCSI中是MODE SENSE(6)命令。
mailto:tsingkong@163.com
smartsheep
驱动牛犊
驱动牛犊
  • 注册日期2004-11-30
  • 最后登录2007-04-27
  • 粉丝0
  • 关注0
  • 积分36分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-02-03 10:24
注意ARM7中的4字节对齐问题, 再看一下自己结构
游客

返回顶部