FAT文件系统的知识补充:如果对SD卡的读写测试像EEPROM一样仅仅写数据,读数据并验证正确性的话,是不需要FAT文件系统的,而SD卡经常被用来在Window操作系统上存取数据,必须使用Window操作系统支持的FAT文件系统才能在电脑上正常使用。
FAT(File Allocation Table,文件分配表)是Windows操作系统所使用的一种文件系统,他的发展过程经历了FAT12、FAT16、FAT32三个阶段。FAT文件系统用簇作为数据单元,一个“簇”由一组连续的扇区组成,而一个扇区由512个字节组成。簇所包含的扇区必须是2的整数次幂,其中扇区最大个数为64,即32kb(512x64)。所有的簇从二开始进行编号,每个簇都有一个自己的地址编号,用户文件和目录都存储在簇中。
FAT文件系统的基本结构依次为:分区引导记录、文件分配表(FAT表1和FAT表2)、根目录和数据区。
分区引导记录:分区引导记录区通常占用分区的第一个扇区,共
512
个字节。包含四部分内容:
BIOS
参数记录块
BPB
(
BIOS Parameter Block
)、磁盘标志记录表、分区引导记录代码区和结束标志
0x55AA
。
文件分配表(
FAT
表
1
和
FAT
表
2
):文件在磁盘上以簇为单位存储,但是同一个文件的数据并不一定
完整地存放在磁盘的一个连续的区域内,往往会分成若干簇,
FAT
表就是记录文件存储中簇与簇之间连接
的信息,这就是文件的链式存储。对于
FAT16
文件系统来说,每个簇用
16Bit
来表示文件分配表,而对于
FAT32
文件系统,使用
32Bit
来表示文件分配表,这是两者之间的最重要区别。
根目录:根目录是文件或者目录的首簇号。在
FAT32
文件系统中,不再对根目录的位置做硬性规定,
可以存储在分区内可寻址的任意簇内。不过通常根目录是最早建立的
(
格式化就生成了
)
目录表,所以我们
看到的情况基本上都是根目录首簇紧邻
FAT2
,占簇区顺序上的第
1
个簇(即
2
号簇)。
数据区:数据区紧跟在根目录后面,是文件等数据存放的地方,占用大部分的磁盘空间。