阅读:3362回复:29
to frank_wang。关于FLASH的FAT结构
在你的文章中,为什么要定义簇的大小为32K?
这对于容量本来就不是很大的U盘来说,将会浪费很多空间。 如果说为了让FLASH的块(32扇区)和FAT16统一起来,应该定为 16K/簇,页=扇区。但是这样还是会浪费空间。我看有些文章介绍 说16M以下的分区8K/簇,16―128M的分区4K/簇。我不太理解, 为什么分区越小的簇容量反而越大?岂不是雪上加霜? 不知道你如何理解? 另外,当PC要取得U盘上的文件结构时是发送特定命令,U盘的固件 仅返回给主机DBR和FAT内容。还是连同地址一起返回给主机? |
|
|
沙发#
发布于:2003-06-03 12:02
其实系统只会发送读和写命令,逻辑地址和要传输的长度!
|
|
板凳#
发布于:2003-06-03 14:51
我也在看frank的那份报告,请问:在文章中提到的BPB_SecPerTrk(每道扇区数),BPB_NumHeads(磁头数),对于16M优盘怎么设置(虽然不是必须的)?
|
|
|
地板#
发布于:2003-06-03 15:11
谢谢NewTech,
另外,在51单片机和d12的方案中,必须要扩一个内存来缓存 写入FLASH某页之前的同块其它页数据吗?(鉴于要写一页必须先擦除整个块) |
|
|
地下室#
发布于:2003-06-03 15:16
我也在看frank的那份报告,请问:在文章中提到的BPB_SecPerTrk(每道扇区数),BPB_NumHeads(磁头数),对于16M优盘怎么设置(虽然不是必须的)? 好像都设成32。 |
|
|
5楼#
发布于:2003-06-03 15:49
请问,是什么报告啊,是什么名字?
是不是关于硬盘的呀,比如分区,文件系统存放的位置 |
|
|
6楼#
发布于:2003-06-03 16:04
|
|
|
7楼#
发布于:2003-06-03 18:17
引用:
-------------------------------------------------------------------------------- 另外,在51单片机和d12的方案中,必须要扩一个内存来缓存 写入FLASH某页之前的同块其它页数据吗?(鉴于要写一页必须先擦除整个块) -------------------------------------------------------------------------------- 如果用的是nand flash,这是必须的(据我所知),跟flash的原理有关,因为一旦某个字节的某位写入了0,这一位必须通过擦写才可能再写入1或0。 |
|
|
8楼#
发布于:2003-06-03 21:10
[quote]
|
|
|
9楼#
发布于:2003-06-04 02:35
的确是要扩充一块内存来处理数据的!
对于flash的格式,实际上固件不需要处理太多的(这个问题以后再解释),这是由windows自己管理的,一般来讲要处理的就只有读、写指令。 |
|
10楼#
发布于:2003-06-04 14:01
可是读写指令也需要有地址和数据阿。
我现在就是弄不清楚PC机上下来的地址和当要读写FLASH的数据前 要发送的那个地址之间的关系。 还有PC机要获得U盘的FAT和目录区数据,是要发送特定命令, 还是直接给出FAT和目录区所在地址,发送读命令。 这个地址是固定的吧。 |
|
|
11楼#
发布于:2003-06-04 15:49
这两个地址之间没有任何关系,一个块的逻辑地址是保存在物理块每个page后面那16个字节里的!
|
|
12楼#
发布于:2003-06-04 18:31
这两个地址之间没有任何关系,一个块的逻辑地址是保存在物理块每个page后面那16个字节里的! 那是不是说逻辑地址和物理地址可以设成一样! |
|
|
13楼#
发布于:2003-06-04 19:00
这两个地址之间没有任何关系,一个块的逻辑地址是保存在物理块每个page后面那16个字节里的! 越来越晕了。难道PC机下来的LBA就是page后面16个字节里面的? 那FLASH中页面末16字节中的block address需要我们来写进去吗? 我察看了。没有存放数据的块,这部分是FF FF |
|
|
14楼#
发布于:2003-06-05 12:17
那后面的16个字节,包含有ECC,带校验的逻辑地址,块的标志,全部都要由固件来完成的!
|
|
15楼#
发布于:2003-06-05 13:18
NewTech,
你是说从PC机上下来的地址,即SCSI中的Logical block address 就是flash页面中末16个字节中的block address? 既然这个地址是固件完成的,PC机怎么会知道要写哪个块地址。 在前面的过程中,PC机应该知道了MBR,FAT和目录区的内容 那么PC机的操作对象不是应该是簇么? |
|
|
16楼#
发布于:2003-06-06 12:32
pc上肯定知道logical address啊,因为有读fat啊,至于这个地址对应那个物理块,那要由固件自动查找啊,比如说这次写在第10个物理块,删掉文件后,下次再写就写道另外一个空的物理块啊!
|
|
17楼#
发布于:2003-06-06 13:29
fat 里面是簇号。你是说logical address其实就是簇号。
我在另一个贴子里面也看到这个说法。但你前面说: 一个块的逻辑地址是保存在物理块每个page后面那16个字节里的。 这不是矛盾?末16个字节里面的块地址可不是簇号阿 |
|
|
18楼#
发布于:2003-06-06 13:43
发送的数据包里面包含整个簇的内容?
|
|
|
19楼#
发布于:2003-06-06 15:12
我下载了这个技术报告,呵呵
感谢楼主,我现在正在研究 说不定能解决我现在的问题 |
|
|
上一页
下一页