FatFS-通用FAT文件系统详解

http://elm-chan.org/fsw/ff/00index_e.html

(一)FatFS简介

FatFs是用于小型嵌入式系统的通用FAT / exFAT文件系统模块。 FatFs模块是按照ANSI C(C89)编写的,并且与磁盘I / O层完全分开。 因此,它独立于平台。 可以将其合并到资源有限的小型微控制器中,例如8051,PIC,AVR,ARM,Z80,RX等。此处还提供了适用于小型微控制器的Petit FatFs模块,结构拓扑如下:

FatFS-通用FAT文件系统详解_第1张图片

(二)FatFS的特性
1、与DOS / Windows兼容的FAT / exFAT文件系统。
2、平台无关。 易于移植。
3、程序代码和工作区的占用空间非常小。
4、支持以下各种配置选项:
(1)ANSI / OEM或Unicode中的长文件名。
(2)exFAT文件系统,64位LBA和GPT可存储大量数据。
(3)RTOS的线程安全。
(4)多个卷(物理驱动器和分区)。
(5)可变扇区大小。
(6)多个代码页,包括DBCS。
(7)只读,可选API,I / O缓冲区等

(三)应用接口(FatFs为应用程序提供各种文件系统功能,如下所示)

FatFS-通用FAT文件系统详解_第2张图片

文件访问

f_open-打开/创建文件
f_close-关闭打开的文件
f_read-从文件读取数据
f_write-将数据写入文件
f_lseek-移动读/写指针,扩展大小
f_truncate-截断文件大小
f_sync-刷新缓存的数据
f_forward-将数据转发到流
f_expand-将连续块分配给文件
f_gets-读取字符串
f_putc-写一个字符
f_puts-写一个字符串
f_printf-编写格式化的字符串
f_tell-获取当前的读/写指针
f_eof-测试文件结尾
f_size-获取大小
f_error-测试错误
目录访问
f_opendir-打开目录
f_closedir-关闭打开的目录
f_readdir-读取目录项
f_findfirst-打开目录并读取匹配的第一项
f_findnext-阅读下一个匹配的项目
文件和目录管理
f_stat-检查文件或子目录是否存在
f_unlink-删除文件或子目录
f_rename-重命名/移动文件或子目录
f_chmod-更改文件或子目录的属性
f_utime-更改文件或子目录的时间戳
f_mkdir-创建一个子目录
f_chdir-更改当前目录
f_chdrive-更改当前驱动器
f_getcwd-检索当前目录和驱动器
卷管理和系统配置
f_mount-注册/注销卷的工作区
f_mkfs-在逻辑驱动器上创建FAT卷
f_fdisk-在物理驱动器上创建分区
f_getfree-获取卷上的可用空间
f_getlabel-获取卷标
f_setlabel-设置卷标
f_setcp-设置活动代码页

(四)介质访问接口

FatFS-通用FAT文件系统详解_第3张图片

         由于FatFs模块是独立于平台和存储介质的文件系统层,因此它与物理设备(例如存储卡,硬盘和任何类型的存储设备)完全分开。 低级设备控制模块不是FatFs模块的任何部分,需要由实施者提供。 FatFs通过如下所示的简单媒体访问界面访问存储设备。 下载中还提供了某些平台的示例实现。 此处提供了用于低级磁盘I / O模块的功能检查器。

disk_status-获取设备状态
disk_initialize-初始化设备
disk_read-读取扇区
disk_write-写入扇区
disk_ioctl-控制设备相关的功能
get_fattime-获取当前时间

 

 

 

你可能感兴趣的:(文件系统)