FatFs(文件系统)

1官网

FatFs - 通用 FAT 文件系统模块 (elm-chan.org)

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 文件系统、64 位 LBA 和 GPT 用于大型存储。
    • RTOS 的线程安全。
    • 多个卷。(物理驱动器和分区)
    • 可变扇区大小。
    • 包括 DBCS 在内的多个代码页。
    • 只读、可选 API、I/O 缓冲区等...

应用界面

层

FatFs 为应用程序提供了各种文件系统功能,如下所示。

媒体访问接口

层

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

项目的文件

文件类别文件名说明
FATFS核心文件ff.c, ff.hFAT文件系统的核心实现和头文件
磁盘I/O接口diskio.c, diskio.h底层磁盘I/O函数的实现和声明,用于硬件平台特定的存储设备操作
FATFS配置ffconf.hFATFS的行为配置,如文件系统类型、长文件名支持等
整数类型定义integer.h提供一致的数据类型定义,用于跨平台兼容性
内存管理ffsystem.c, ffsystem.hFATFS的内存分配和释放函数的实现和声明
Unicode支持ffunicode.c, ffunicode.hUnicode字符编码转换相关函数,用于长文件名支持
主程序入口main.c系统初始化、线程创建、文件系统管理等
项目构建Makefile自动化编译脚本,用于构建整个项目
MMC/SD卡驱动mmc_stm32f1_spi.cSTM32F103微控制器的SPI接口的MMC/SD卡驱动程序
实时时钟rtc_stm32f1.c, rtc_stm32f1.h实时时钟(RTC)功能的实现和声明
系统启动代码startup_stm32f100.c微控制器启动代码,负责硬件初始化和引导加载
链接脚本STM32F100RBT6.ld指定链接器如何将源文件组合成可执行文件,以及内存空间分配
配置文件stm32sp.ini, tt.ini可能用于配置STM32F103微控制器的特定参数或系统行为
图形界面相关stm32_mmc.png可能是用于显示MMC接口连接示意图的图像文件
微控制器型号相关STM32F100.h包含STM32F100微控制器型号的寄存器映射和功能描述
串行通信接口uart_stm32f1.c, uart_stm32f1.h串行通信接口(UART)的实现和声明
打印函数库xprintf.c, xprintf.h基于xprintf库的 printf 函数的实现和声明,用于高效的打印功能

FATFS的核心文件通常包括以下几个:

  1. diskio.c: 这是磁盘输入输出(Disk I/O)功能的C语言源代码文件。它可能包含了操作磁盘设备、读写数据等函数。
  2. diskio.h: 这是磁盘输入输出相关头文件,用于定义了在C语言中访问磁盘所需的结构和宏。
  3. ff.c: 这可能是名为“ff”的库或项目的C语言源代码文件。具体功能需要根据上下文来判断。
  4. ff.h: 这是名为“ff”的库或项目的头文件,用于定义了在C语言中使用该库所需的数据结构和接口。
  5. ffconf.h: 这是“ff”库的配置文件,其中可能包含了编译和链接时需要的特定选项或参数。
  6. ffunicode.c: 这可能是一个处理Unicode字符的C语言源代码文件,与文本编码转换有关。
  7. integer.h: 这是整数类型的头文件,通常包含了标准C语言中的int、long int等整数类型定义。
  8. ffsystem.c 和 ffsystem.h:这些文件包含了FATFS的内存分配和释放函数的实现和声明。
  • 22
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值