FatFs - 通用 FAT 文件系统模块
FatFs 是用于小型嵌入式系统的通用 FAT/exFAT 文件系统模块。 FatFs 模块的编写符合 ANSI C (C89),并与磁盘 I/O 层完全分离。 因此它独立于平台。 它可以集成到资源有限的小型微控制器中,例如 8051,PIC,AVR,ARM,Z80,RX 等。此外,还提供用于微型微控制器的 Petit FatFs 模块。
特性
DOS/Windows 兼容的 FAT/exFAT 文件系统。
平台独立,移植简单。
非常小的程序代码和工作区占用空间。
支持多种配置选项:
ANSI/OEM 或 Unicode 中的长文件名。
exFAT 文件系统。
RTOS 线程安全。
多个卷(物理驱动器和分区)。
可变的扇区大小。
多个代码页,包括 DBCS。
只读,可选的 API, I/O 缓存等等。
应用接口
FatFs 提供了如下对应用的多种文件系统函数。
文件访问
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_mount - 注册/注销卷的工作区
f_mkfs - 在逻辑驱动器上创建一个 FAT 卷
f_fdisk - 在物理驱动器上创建逻辑驱动器
f_getfree - 获取卷的总大小与剩余空间
f_getlabel - 获取卷标签
f_setlabel - 设置卷标签
f_setcp - 设置活动代码页
媒体访问接口
由于 FatFs 模块是独立于平台和存储介质的文件系统层,因此它与物理设备完全分离,例如存储卡,硬盘和任何类型的存储设备。 低级设备的控制模块不是 FatFs 模块的任何部分,需要由实现者提供。 FatFs 通过如下所示的简单媒体访问接口访问存储设备。 此外,下载中还提供了某些平台的示例实现。 此处提供了用于低级磁盘 I/O 模块的功能检查程序。
disk_status - 获取设备状态
disk_initialize - 初始化设备
disk_read - 读一个或多个扇区
disk_write - 写一个或多个扇区
disk_ioctl - 控制设备相关函数
get_fattime - 获取当前时间
资源
FatFs模块是一个为教育,研究和开发而开放的免费软件。 您可以使用,修改和/或重新分发个人项目或商业产品,不受您的任何限制。 有关详细信息,请参阅应用笔记。
先阅读: FatFs 模块应用说明 (2019年6月8日)
下载: FatFs R0.13c | 更改日志 | 最新补丁 (April 13, 2019)
下载: FatFs 多个平台的样例 (October 14, 2018)
下载: 预览发布
交流: FatFs 用户论坛
微软 FAT32 规范↗(FAT文件系统上的授权文档)
FAT文件系统的基础知识
exFAT文件系统的基础知识
如何使用 MMC/SDC
玩转 FlashAir 和 FatFs
奈米桑的 Blog↗(STM32F/SPI & SDIO和LPC 4088/SDMMC 的良好实现)
来自 Tilen Majerle 的 STM32F4xx 设备上读取带有 FatFs 的 SD 卡↗(STM32F4-Discovery 快速简便的实现)
基准测试 1(ATmega1284/20MHz,MMC 通过 USART 在 SPI,CFC 通过 GPIO)
基准测试 2 (LPC2368/72MHz, MMC 通过 MCI)
应用程序的演示影片(此项目位于 ffsample.zip/lpc23xx)
Last updated
Was this helpful?