FAT32 文件系统详细分析 (格式化 SD nand/SD 卡)
博客目录
1. 前言
文件存储到存储芯片中,有 2 种形式。
1, 直接按照地址的方式进行存储。
2, 以文件系统的形式进行存储。
直接按照地址的方式进行存储,可以通过建立一张索引表,知道哪些地址存储哪些数据,或者按照固定的方式,进行顺序的存储。这种写入的方式好处是不需要复杂的文件系统管理,但是不方便数据的交互。因为这张索引表都是自己定义的,不是通用的标准。
文件系统形式进行存储,就会有一套标准,大家都按照这个标准来,不同的设备都可以对于这个数据进行读写操作。通过文件系统的方式来存储数据,好处是方便了数据的交互,但是也会提高复杂程度。并且如果数据是完整的保存到存储单元中,但是描述这个文件的相关文件参数损坏了,这个文件也就无法正确读取到了。每一个数据,都有描述文件起始地址,文件大小,格式等等很多参数,也也就提高了文件出错的概率。 文件系统的种类也有很多,比如 FAT,exfat,NTFS,ext4 等等。
今天我们就先了解下 fat32 的文件系统。
2.格式化 SD nand/SD 卡
申请到雷龙发展代理的 CS 创世 贴片 SD Card (SD NAND) 样品,做出测试,分享一下,该公司 SD NAND 二代产品介绍可以参考如下地址http://longsto.com/product/list-39.html,有1Gb,4Gb,32Gb,64Gb的容量可选,我这里申请到的是两片32Gb的芯片和测试板.
2.1 格式化 SD nand / SD 卡,强制采用 FAT32 格式,分配每个簇大小为 2048Byte,同时为了避免其他原有数据干扰,我们此处取消快速格式化。
2.2 使用 WinHex 打开分析
3.FAT32 文件系统分析
FAT 文件系统布局图如下,和 FAT16 上有些许差别:
3.1 保留区分析
保留区分为引导扇区、备份引导扇区及其他字段,具体数据段分析如下。
3.1.1 BPB(BIOS Parameter Block) 及 BS 区分析
BPB 及 BS 参数内容数据如下:
EB 58 90 :BS*JmpBoot,跳转指令
4D 53 44 4F 53 35 2E 30:BS_OEMName,MSDOS 5.0,一个名字,指示创建此卷的操作系统,无其他作用
00 02:BPB_BytsPerSec,扇区大小 512 字节
04:BPB_SecPerClus,每次操作的最小扇区数,簇 Cluster,4 (与格式化时选择的大小匹配 2048 = 512 * 4)
16 11:BPB*RsvdSecCn