FatFs 文件系统

FatFs 文件系统

版本:R0.15

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

  • 平台无关:
    • ff.c FatFs 模块。
    • ffconf.h FatFs模块的配置文件。
    • ff.h FatFs 和应用程序模块的通用包含文件。
    • diskio.h FatFs 和磁盘 I/O 模块的通用包含文件。
    • ffunicode.c 可选的 Unicode 实用函数。
  • 平台相关:
    • diskio.c 将现有磁盘 I/O 模块附加到 FatFs 的粘合函数示例。
  • 示例
    • ffsystem.c 可选 O/S 相关函数的示例。

低级磁盘 I/O 模块不包含在该档案中,因为 FatFs
模块只是一个通用的文件系统层,它不依赖于任何特定的
存储设备。您需要提供一个写入的低级磁盘 I/O 模块
控制连接到目标系统的存储设备。

移植过程:
1、复制 ffconf.h、 ff.c、ff.h、diskio.h、diskio.c、ffunicode.c 文件到项目;
2、修改 ffconf.h 配置文件和 diskio.c 底层存储设备驱动文件。

配置文件(ffconf.h)

功能 配置 默认值 说明
FFCONF_DEF 5380 修定版本ID
FF_FS_READONLY 0 0 - 读/写;1 - 只读
FF_FS_MINIMIZE 0 0 - 基本功能全启用;
1 - 删除 f_stat()、f_getfree()、f_unlink()、f_mkdir()、f_truncate();
2 - 除了1之外,还删除了f_opendir()、f_readdir()、f_closedir();
3 - 除了2之外,还删除了f_lseek()
FF_USE_FIND 0 0 - 禁用f_findfirst()和f_findnet();
1 - 启用;
2 - 同时启动匹配的 altname[]
FF_USE_MKFS 0 0 - 禁用f_mkfs();1 - 启用
FF_USE_FASTSEEK 0 0 - 禁用快速寻道功能;1 - 启用
FF_USE_EXPAND 0 0 - 禁用f_expand();1 - 启用
FF_USE_CHMOD 0 0 - 禁用f_chmod()和f_utime();1 - 启用
FF_USE_LABEL 0 0 - 禁用f_getlabel()和f_setlable();1 - 启用
FF_USE_FORWARD 0 0 - 禁用f_forward();1 - 启用
FF_USE_STRFUNC 0 使用字符串API:f_get()、f_putc()、f_puts()、f_printf()

0 - 禁用。FF_PRINT_LLI、FF_PRINT_FLOAT、FF_STRF_ENCODE 无效;
1 - 启用而不进行 LF-CRLF转换
2 - 启动LF-CRLF转换
FF_PRINT_LLI 0 1 - 使用 f_printf()支持long long参数;
FF_PRINT_FLOAT 0 1/2 - 使用f_printf()支持浮点参数
FF_STRF_ENCODE 3 0 - 当前CP中的ANSI/OEM;1 - UTF-16LE 中的Unicode;2 - UTF-16BE 中的Unicode;3 - UTF-8 中的Unicode
区域/命名空间 配置 默认值 说明
FF_CODE_PAGE 932 932 - 日语;
936 - 简体中文;
0 - 包含所有并由f_setcp()配置
FF_USE_LFN 0 0 - 禁用长文件名,FF_MAX_LFN无效;
1 - 在BSS上使用静态工作缓冲区启用LFN。始终非线程安全
2 - 在STACK上启用具有动态工作缓冲区的LFN
3 - 在HEAP上使用动态工作缓冲区启用LFN

要启用LFN,需要将ffunicode.c添加到项目中
FF_MAX_LFN 255 缓冲区的大小
FF_LFN_UNICODE 0 0 - 当前CP中的ANSI/OME (TCHAR= char)
1 - UTF-16中的Unicode (TCHAR= WCHAR)
2 - UTF-8中的Unicode (TCHAR= char)
3 - UTF-32中的Unicode (TCHAR= DWORD)
FF_LFN_BUF 255 定义FILINFO结构中文件名的大小
FF_SFN_BUF 12
FF_FS_RPATH 0 0 - 禁用相对路径并删除相关API函数;
1 - 启用相对路径。f_chdir()和f_chdrive()可用;
2 - 除了1之外,还有f_getcwd()可用
驱动器/卷 配置 默认值 说明
FF_VOLUMES 1 卷(逻辑驱动器)数量。(1-10)
FF_STR_VOLUME_ID 0 1/2 - 可以使用任意字符串作为驱动器
FF_VOLUME_STRS “RAM”,
“NAND”,
“CF”,
“SD”,
“SD2”,
“USB”,
“USB2”,
“USB3”
定义每个卷ID字符串
FF_MULTI_PARTITION 0 0 - 每个逻辑驱动器号都绑定到同一个物理驱动器号;
1 - 每个逻辑驱动器号都可以绑定到VolToPart[]。另外f_fdisk()将可用
FF_MIN_SS 512 扇区大小范围(512、1024、2048、4096)
FF_MAX_SS 512
FF_LBA64 0 0 - 禁用64位LBA的支持;1 - 启用。要启用64位LBA,还需要启用exFAT。(FF_FS_EXFAT == 1)
FF_MIN_GPT 0x10000000 将GPT切换为f_mkfs()分区格式的最不扇区数
FF_USE_TRIM 0 0 - 禁用ATA-TRIM的支持;1 - 启用。
系统 配置 默认值 说明
FF_FS_TINY 0 0 - 正常版本;1 - tiny版本
FF_FS_EXFAT 0 0 - 禁用exFAT文件系统的支持;1 - 启用
FF_FS_NORTC 0 0 - 启用时间戳功能,需要添加get_fattime();
1 - 禁用时间戳
FF_NORTC_MON 11 FF_FS_NORTC ==0时,固定时间戳
FF_NORTC_MDAY 1 FF_FS_NORTC ==0时,固定时间戳
FF_NORTC_YEAR 2014 FF_FS_NORTC ==0时,固定时间戳
FF_FS_NOFSINFO 0 0 - f_getfree()将强制完整的FAT扫描
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值