FATFS
文件系统剖析
1
:
FAT16
:
数据按照其不同的特点和作用大致可分为
5
部分:
MBR
区、
DBR
区、
FAT
区、
DIR
区和
DATA
区,相比
fat12
多了
DBR
区
Main boot record: MBR
(
0--1bdh
)
磁盘参数存放
DPT
(
1beh--1fdh
)
磁盘分区表
55
,
aa
分区结束标志
DBR
(
Dos Boot Record
)是操作系统引导记录区的意思
FAT
区(有两个,一个备份):对于
fat16
,每一个
fat
项
16
位,所以可寻址的簇项数
为
65535
(
2
的
16
次方)
。
而其每簇大小不超
过
32k
,
所以其每个分区最大容量为
2G
。
fat32
,
每一个
fat
项
32
位,可寻址簇数目为
2
的
32
次方。
DIR
区(根目录区):紧接着第二
FAT
表(即备份的
FAT
表)之后,记录着根目录下
每个文件(目录)的起始单元,文件的属性等。定位文件位置时,操作系统根据
DIR
中的
起始单元,结合
FAT
表就可以知道文件在硬盘中的具体位置和大小了。
DATA
区:实际文件内容存放区。
FAT32
:
暂时放在这里,不讨论!
Fatfs
:
嵌入式
fat
文件系统,支持
fat16
,
fat32
。
包含有
ff.h,diskio.h,integer.h,ffconf.h
四个头文件以及
ff.c
文件系统实现。
当然要实现
具体的应用移植,自己要根据
diskio.h
实现其
diskio
。
c
底层驱动。
diskio.h :
底层驱动头文件
ff.h
:
文件系统实现头文件,定义有文件系统所需的数据结构
ff.c :
文件系统的具体实现