测一下:
/* File system object structure */
typedef struct _FATFS {
BYTE fs_type;/* FAT sub type */
/* FAT子类型,一般在mount时用,置0表示未挂载*/
BYTE drive;/* Physical drive number */
/* 物理驱动号,一般为0*/
BYTE csize;/* Number of sectors(扇) per cluster(簇) */
BYTE n_fats;/* Number of FAT copies */
/* 文件分配表的数目(1,2) */
/*FAT文件系统依次为:引导扇区、两个文件分配表、根目录区和数据区*/
BYTE wflag;/* win[] dirty flag (1:must be written back) */
/* 标记文件是否被改动过,为1时要回写*/
BYTE pad1;
WORD id;/* File system mount ID */
/* 文件系统挂载ID */
WORD n_rootdir;/* Number of root directory entries (0 on FAT32) */ /* 根目录区入口(目录项)的个数(用于FAT12/16)*/
#if _FS_REENTRANT
_SYNC_t
sobj; /* Identifier of sync object (同步对象标识符) */ /* 允许重入,即定义同步对象,用在tiny中*/
#endif
#if _MAX_SS != 512U
WORD s_size;/* Sector size */
/* 每扇区的字节数(用于扇区大于512Byte的flash) */
#endif
#if !_FS_READONLY
BYTE fsi_flag;/* fsinfo dirty flag (1:must be written back) *//* 标记文件系统信息是否被改动过,为1时要回写*/
BYTE pad2;
DWORD last_clust;/* Last allocated cluster */
/* 最后一个被分配的簇*/
DWORD free_clust;/* Number of free clusters */
DWORD fsi_sector;/* fsinfo sector */
/* 存放fsinfo的扇区(用于FAT32) */
#endif
DWORD sects_fat;/* Sectors per fat */
DWORD max_clust;/* Maximum cluster# + 1. Number of clusters is max_clust - 2 */
DWORD fatbase;/* FAT start sector */
DWORD dirbase;/* Root directory start sector (Cluster# on FAT32) */
DWORD database;/* Data start sector */
/* 数据目录起始扇区*/
DWORD winsect;/* Current sector appearing in the win[] */
/* 当前缓冲区中存储的扇区号*/
BYTE win[_MAX_SS];/* Disk access window for Directory/FAT */
/* 单个扇区缓存*/
} FATFS;