FATFS文件系解释
1. FATFS ff.h
1. FATFS ff.h
11.. FFAATTFFSS结构,文件系统对象结构体,所在文件 ffff..hh。
FATFS 结构(文件系统对象)用来保存独立逻辑驱动器动态工作区域。这个结构由应用程序给定,使用f_mount
函数注册/注销 FatFs 模块。在执行 f_mount 或媒体发生变化后,访问第一个文件时FATFS 被初始化。其
他应用程序不能改变结构的任何成员变量。
typedefstruct{
BYTE fs_type; /*FAT子类型,一般在 mount时用,置 0 表示未挂载*/
BYTE drv; /* 物理驱动器号,一般为 0*/
BYTE csize; /*每个簇的扇区数目(1,2,4...128) */
BYTE n_fats; /* 文件分配表的数目(1,2) ,FAT文件系统依次为:引导扇区、两个文件分配表、
根目录区和数据区*/
BYTE wflag; /*标记文件是否被改动过,为 1时要回写*/
BYTE fsi_flag; /* 标记文件系统信息是否被改动过,为 1时要回写*/
WORD id; /* 文件系统挂载 ID */
WORD n_rootdir; /* 根目录区入口(目录项)的个数(用于 FAT12/16)*/
#if_MAX_SS !=512
WORD ssize; /* 每扇区的字节数(用于扇区大于 512Byte的 flash)*/
#endif
#if_FS_REENTRANT
_SYNC_t sobj; /* 允许重入,即定义同步对象,用在 tiny中*/
#endif
#if!_FS_READONLY
DWORD last_clust; /* 最后一个被分配的簇*/
DWORD free_clust; /* 空闲簇数目*/
DWORD fsi_sector; /* 存放 fsinfo的扇区(用于 FAT32) */
#endif
#if_FS_RPATH
DWORD cdir; /* 允许相对路径时用,存储当前目录起始簇(0:root)*/
#endif
DWORD n_fatent; /*FAT目录数(簇的数目 +2)*/
DWORD fsize; /* 每个 FAT所占扇区*/
DWORD fatbase; /*FAT起始扇区*/
DWORD dirbase; /* 根目录起始扇区(FAT32:Cluster#) */
DWORD database; /* 数据目录起始扇区*/
DWORD winsect; /* 当前缓冲区中存储的扇区号*/
BYTE win[_MAX_SS]; /* 单个扇区缓存, FAT (andDataontinycfg)*/
}FATFS;
2. FIL ff.h
2. FIL ff.h
22.. FFIILL结构,文件对象结构。所在文件ffff..hh。
FIL 结构(文件对象)用来保存打开文件的状态。 它由f_open函数创建,由f_cl函数废弃。除cltbl外,其
成员不能被其他应用程序改变。注意:在non-tiny 配置况下,在结构体中定义了一个扇区缓冲区,因此FIL
结构不能够被定义为自动变量
typedefstruct{
FATFS* fs; /* 所在的文件系统指针*/
WORD id; /* 所在的文件系统挂载编号*/
BYTE flag; /* 文件状态*/