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_stat - 检查文件或子目录的存在

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

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

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

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

    • f_mkdir - 创建一个子目录

    • f_chdir - 改变当前目录

    • f_chdrive - 改变当前驱动器

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

  • 卷管理与系统配置

媒体访问接口

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

资源

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

Last updated

Was this helpful?