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扫描 |


5482

被折叠的 条评论
为什么被折叠?



