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

读写U盘的疑惑(给分)

楼主#
更多 发布于:2004-09-24 12:29
小弟正准备作Host读写U盘,有些问题百思不解,虽然问题很菜,还望高手指点迷津:
1.Host对U盘读写是以扇区/块为单位的吗?如果是按扇区来读写的话,FAT记录的是簇,Host如何确定逻辑地址呢,LBA给出的应该是扇区号吧,按照frank 大虾的说法?
2.创建文件就是要在根目录写入32字节的文件结构,那么是怎么写呢?Host一次写操作不是至少要512字节。是不是Host先发read命令读出根目录的内容,再加上要创建的文件,然后用再write命令一起写回?
我真搞不懂!
chanlin007
驱动牛犊
驱动牛犊
  • 注册日期2004-06-09
  • 最后登录2008-10-20
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望16点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-09-24 12:36
是的,先从目录区读出来,然后再写回去
IDK_Marry
驱动牛犊
驱动牛犊
  • 注册日期2004-09-24
  • 最后登录2004-09-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-09-24 12:51
是的,先从目录区读出来,然后再写回去

多谢!
那我怎么知道,目录区有多少个文件呢。就是说如何定位我写的地址不会覆盖以前的文件结构?如果目录区被写满了又怎么办?
我真搞不懂!
chanlin007
驱动牛犊
驱动牛犊
  • 注册日期2004-06-09
  • 最后登录2008-10-20
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望16点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-09-24 13:38
对于fat12和fat16,根目录的大小是一定的,一般是512*32bytes,满了就不能写了,当然可以建子目录,子目录的大小是没有限制的。
IDK_Marry
驱动牛犊
驱动牛犊
  • 注册日期2004-09-24
  • 最后登录2004-09-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-09-24 14:16
 多谢!
 明白了一点。那我就是要读512*32这么多的数据,插入我要建立的文件结构,然后再写回512*32个数据到根目录区?
 每个文件结构占用32个字节,我如何判段根目录区写了多少个文件结构呢?是不是可以这样判读,看每个结构的文件名单元,如果是00H和E5H就表明未用或是被删除,那么这32个字节的结构就可以用了。如果所有的结构文件名都被占用了,就表明目录区写满了?
还有啊,是不是每次Host一定要写至少512个字节的数据呢?不可能我每次要写得数据都是512的整数倍吧,如果要写的数据少于512怎么写,就比如说我的这个文件只有1个字节,后面补0还是别的什么?

[编辑 -  9/24/04 by  IDK_Marry]
我真搞不懂!
zgfish
驱动牛犊
驱动牛犊
  • 注册日期2003-03-09
  • 最后登录2004-10-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-09-24 19:57
我也不懂,希望高手来指教。
顺便请教一下frank在U盘项目报告中说,U盘 Block 0的第一个扇区是BPB,是不是所有的U盘都是这样?
热带飞鱼
eifire
驱动牛犊
驱动牛犊
  • 注册日期2003-06-10
  • 最后登录2005-12-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-09-24 20:32
推荐一个网址,上面有硬盘结构很详细的介绍
U盘的结构与此类似
http://www.dostor.com/hdd/diy/2004-04-02/0002410253.shtml
IDK_Marry
驱动牛犊
驱动牛犊
  • 注册日期2004-09-24
  • 最后登录2004-09-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-09-25 18:48
多谢eifire大虾,我去研究研究
 
 
我真搞不懂!
zyyz1100
驱动牛犊
驱动牛犊
  • 注册日期2003-01-11
  • 最后登录2009-10-12
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望12点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-09-26 10:48
我有成功开发案例,有要求的请联系。qq:45364203
email:zyyz1100@eyou.com
Arm_Base
驱动牛犊
驱动牛犊
  • 注册日期2004-08-15
  • 最后登录2005-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-09-26 13:52
我有成功开发案例,有要求的请联系。qq:45364203
email:zyyz1100@eyou.com



请问:  U盘FLASH中 怎么搜索physical block?
游客

返回顶部