FatFs 通用 FAT 文件系统模块
中文手册
版本:R0.009a
FatFs 通用 FAT 文件系统模块
目录
1、特点.......................................................................................................................................................................1
2、应用程序接口.......................................................................................................................................................2
2.1f_mount.........................................................................................................................................................3
2.2f_open............................................................................................................................................................4
2.3f_close............................................................................................................................................................6
2.4f_read.............................................................................................................................................................7
2.5f_write............................................................................................................................................................8
2.6f_lseek............................................................................................................................................................9
2.7f_truncate....................................................................................................................................................10
2.8f_sync...........................................................................................................................................................11
2.9f_opendir.....................................................................................................................................................12
2.10f_readdir
....................................................................................................................................................13
2.11f_getfree....................................................................................................................................................15
2.12f_stat..........................................................................................................................................................16
2.13f_mkdir.......................................................................................................................................................17
2.14f_unlink......................................................................................................................................................18
2.15f_chmod.....................................................................................................................................................19
2.16f_utime......................................................................................................................................................20
2.17f_rename...................................................................................................................................................21
2.18f_chdir........................................................................................................................................................22
2.19f_chdrive....................................................................................................................................................23
2.20f_getcw d....................................................................................................................................................24
2.21f_forward...................................................................................................................................................
25
2.22f_mkfs........................................................................................................................................................27
2.23f_fdisk........................................................................................................................................................28
2.24f_gets.........................................................................................................................................................29
2.25f_putc.........................................................................................................................................................30
2.26f_puts.........................................................................................................................................................31
2.27f_printf.......................................................................................................................................................32
2.28f_tell...........................................................................................................................................................33
2.29f_eof...........................................................................................................................................................34
2.30f_size..........................................................................................................................................................35
2.31f_error........................................................................................................................................................36
3、磁盘 I/O 接口......................................................................................................................................................
37
3.1disk_initialize...............................................................................................................................................37
3.2disk_status...................................................................................................................................................37
3.3disk_read......................................................................................................................................................38
3.4disk_write....................................................................................................................................................38
3.5disk_ioctl......................................................................................................................................................39
3.6get_fattime..................................................................................................................................................40
4、FatFs 模块应用....................................................................................................................................................41
4.1 如何移植....................................................................................................................................................41
FatFs 通用 FAT 文件系统模块
4.1.1 基本概念.........................................................................................................................................41
4.1.2 系统组织.........................................................................................................................................41
4.1.3 需要哪些函数?.............................................................................................................................41
4.2 限制............................................................................................................................................................42
4.3 内存使用(R0.09a)........................................................................................................................................42
4.4 模块大小裁减.............................................................................................................................................42
4.5 长文件名....................................................................................................................................................43
4.6UnicodeAPI..................................................................................................................................................43
4.7 重入............................................................................................................................................................44
4.8 重复的文件访问........................................................................................................................................44
4.9 执行有效的文件访问................................................................................................................................44
4.10
关于闪存媒体的考虑..............................................................................................................................45
4.10.1 使用多扇区写...............................................................................................................................45
4.10.2 强制内存擦除...............................................................................................................................45
4.11 临界区(CriticalSection)......................................................................................................................46
FatFs 通用 FAT 文件系统模块
1
FatFs 是一个为小型嵌入式系统设计的通用 FAT(File Allocation Table)文件系统模块。FatFs 的编写遵循
ANSI C,并且完全与磁盘 I/O 层分开。因此,它独立(不依赖)于硬件架构。它可以被嵌入到低成本的微控制
器中,如 AVR 、8051、PIC、ARM、Z80、68K 等等,而不需要做任何修改。
1、特点
Windows 兼容的 FAT 文件系统
不依赖于平台,易于移植
代码和工作区占用空间非常小
多种配置选项:
z 多卷(物理驱动器和分区)
z 多 ANSI/OEM 代码页,包括 DBCS
z 在 ANSI/OEM 或 Unicode 中长文件名的支持
z RTOS 的支持
z 多扇区大小的支持
z 只读,最少 API,I/O 缓冲区等等
FatFs 通用 FAT 文件系统模块
2
2、应用程序接口
FatFs 模块为应用程序提供了下列函数,这些函数描述了 FatFs 能对 FAT 卷执行哪些操作。
函数名 描述
f_mount 注册/注销一个工作区
f_open 打开/创建一个文件
f_close 关闭一个文件
f_read 读取文件
f_write 写文件
f_lseek 移动读/写指针,扩展文件大小
f_truncate 截断文件大小
f_sync 清空缓冲数据
f_opendir 打开一个目录
f_readdir 读取一个目录项
f_getfree 获取空闲簇
f_stat 获取文件状态
f_mkdir 创建一个目录
f_unlink 删除一个文件或目录
f_chmod 修改属性
f_utime 修改日间戳
f_rename 删除/移动一个文件或目录
f_chdir 修改当前目录
f_chdrive 修改当前驱动器
f_getcwd 恢复当前目录
f_forward 直接输出文件数据流
f_mkfs 在驱动器上创建一个文件系统
f_fdisk 划分一个物理驱动器
f_gets 读取一个字符串
f_putc 写一个字符
f_puts 写一个字符串
f_printf 写一个格式化的字符串
f_tell 获取当前读/写指针
f_eof 测试一个文件是否到达文件末尾
f_size 获取一个文件的大小
f_error 测试一个文件是否出错