🖊️
FatFs
  • FatFs - 通用 FAT 文件系统模块
Powered by GitBook
On this page
  • 应用接口
  • 媒体访问接口
  • 资源

Was this helpful?

FatFs - 通用 FAT 文件系统模块

Last updated 5 years ago

Was this helpful?

FatFs 是用于小型嵌入式系统的通用 FAT/exFAT 文件系统模块。 FatFs 模块的编写符合 ANSI C (C89),并与磁盘 I/O 层完全分离。 因此它独立于平台。 它可以集成到资源有限的小型微控制器中,例如 8051,PIC,AVR,ARM,Z80,RX 等。此外,还提供用于微型微控制器的 模块。

特性

  • DOS/Windows 兼容的 FAT/exFAT 文件系统。

  • 平台独立,移植简单。

  • 非常小的程序代码和工作区占用空间。

  • 支持多种选项:

    • ANSI/OEM 或 Unicode 中的长文件名。

    • exFAT 文件系统。

    • RTOS 线程安全。

    • 多个卷(物理驱动器和分区)。

    • 可变的扇区大小。

    • 多个代码页,包括 DBCS。

    • 只读,可选的 API, I/O 缓存等等。

应用接口

FatFs 提供了如下对应用的多种文件系统函数。

  • 文件访问

    • - 打开/创建文件

    • - 关闭一个已打开的文件

    • - 从一个文件中读取数据

    • - 写数据到一个文件中

    • - 移动读/写指针(光标),扩展大小

    • - 截断文件大小

    • - 刷新缓存数据

    • - 将数据发送到流

    • - 为文件分配一个连续的块

    • - 读一个字符串

    • - 写一个字符

    • - 都一个字符串

    • - 写一个格式化的字符串

    • - 获得当前的读/写指针(光标)。

    • - 测试文件结尾

    • - 获取大小

    • - 测试一个错误

  • 目录访问

    • - 打开一个目录

    • - 关闭一个已打开的目录

    • - 读取目录成员

    • - 打开目录并读取第一个匹配的成员

    • - 读取下一个匹配的成员

  • 文件与目录管理

    • - 检查文件或子目录的存在

    • - 移除一个文件或子目录

    • - 重命名/移动一个文件或子目录

    • - 改变一个文件或子目录的属性

    • - 改变一个文件或子目录的时间戳

    • - 创建一个子目录

    • - 改变当前目录

    • - 改变当前驱动器

    • - 检索当前目录与驱动器

  • 卷管理与系统配置

    • - 注册/注销卷的工作区

    • - 在逻辑驱动器上创建一个 FAT 卷

    • - 在物理驱动器上创建逻辑驱动器

    • - 获取卷的总大小与剩余空间

    • - 获取卷标签

    • - 设置卷标签

    • - 设置活动代码页

媒体访问接口

资源

FatFs模块是一个为教育,研究和开发而开放的免费软件。 您可以使用,修改和/或重新分发个人项目或商业产品,不受您的任何限制。 有关详细信息,请参阅应用笔记。

  • 下载: FatFs R0.13c | 更改日志 | 最新补丁 (April 13, 2019)

  • 下载: FatFs 多个平台的样例 (October 14, 2018)

  • 下载: 预览发布

  • FAT文件系统的基础知识

  • exFAT文件系统的基础知识

  • 如何使用 MMC/SDC

  • 玩转 FlashAir 和 FatFs

  • 应用程序的演示影片(此项目位于 ffsample.zip/lpc23xx)

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

- 获取设备状态

- 初始化设备

- 读一个或多个扇区

- 写一个或多个扇区

- 控制设备相关函数

- 获取当前时间

先阅读: (2019年6月8日)

交流:

↗(FAT文件系统上的授权文档)

↗(STM32F/SPI & SDIO和LPC 4088/SDMMC 的良好实现)

↗(STM32F4-Discovery 快速简便的实现)

(ATmega1284/20MHz,MMC 通过 USART 在 SPI,CFC 通过 GPIO)

(LPC2368/72MHz, MMC 通过 MCI)

Petit 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_stat
f_unlink
f_rename
f_chmod
f_utime
f_mkdir
f_chdir
f_chdrive
f_getcwd
f_mount
f_mkfs
f_fdisk
f_getfree
f_getlabel
f_setlabel
f_setcp
此处
disk_status
disk_initialize
disk_read
disk_write
disk_ioctl
get_fattime
FatFs 模块应用说明
FatFs 用户论坛
微软 FAT32 规范
奈米桑的 Blog
来自 Tilen Majerle 的 STM32F4xx 设备上读取带有 FatFs 的 SD 卡
基准测试 1
基准测试 2