系统官网 : http://elm-chan.org/fsw/ff/00index_e.html
目录
-
文件系统
文件系统是为了存储和管理数据,而在存储介质建立的一种组织结构,这些结构包括操作系统引导区、目录和文件。常见的 windows 下的文件系统格式包括 FAT32、NTFS、exFAT。在使用文件系统前,要先对存储介质进行格式化。格式化先
擦除原来内容,在存储介质上新建一个文件分配表和目录。这样,文件系统就可以记录数据存放的物理地址,剩余空间。使用文件系统时, 数据都以文件的形式存储。写入新文件时,先在目录中创建一个文件索引,它指示了文件存放的物理地址,再把数据存储到该地址中。当需要读取数据时,可以从目录中找到该文件的索引,进而在相应的地址中读取出数据。具体还涉及到逻辑地址、簇大小、不连续存储等一系列辅助结构或处理过程。文件系统的存在使我们在存取数据时,不再是简单地向某物理地址直接读写,而是要遵循它的读写格式。如经过逻辑转换,一个完整的文件可能被分开成多段存储到不连续的物理地址,使用目录或链表的方式来获知下一段的位置。
-
FatFs文件系统
FatFs是用于小型嵌入式系统的通用FAT / exFAT文件系统模块。FatFs模块的编写符合ANSI C(C89),并与磁盘I / O层完全分离。因此它独立于平台。它可以被纳入到小微控制器利用有限的资源,如8051,PIC,AVR,ARM,Z80,RX等。
-
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_turncate - 截断文件大小
- f_sync - 刷新缓存的数据
- f_forward - 将数据转发到流
- f_expand - 为文件分配一个连续的块
- f_gets - 读取一个字符串
- f_putc - 写一个字符
- f_puts - 写一个字符串
- f_printf - 写一个格式化的字符串
- f_tell - 获取当前读/写指针
- f_eof - 测试文件结尾
- f_size - 获取大小
- f-error - 测试错误
- 目录访问
- f_opendir - 打开目录
- f_closedir - 关闭一个打开的目录
- f_readdir - 读取目录项
- f_findfirst - 打开一个目录并读取匹配的第一个项目
- f_findnext - 读取下一个匹配的项目
- 文件和目录管理
- f_stat - 检查文件或子目录的存在
- f_unlink - 删除文件或子目录
- f_rename - 重命名/移动文件或子目录
- f_chmod - 更改文件或子目录的属性
- f_utime - 更改文件或子目录的时间戳
- f_mkdir - 创建子目录
- f_chdir - 更改当前目录
- f_chdrive- 更改当前驱动器
- f_getcwd - 检索当前目录和驱动器
- 卷管理和系统配置
- f_mount - 注册/取消注册卷的工作区
- f_mkfs - 在逻辑驱动器上创建FAT卷
- f_fdisk - 在物理驱动器上创建逻辑驱动器
- f_getfree - 获取卷上的总大小和可用大小
- f_getlabel - 获取卷标
- f_setlabel - 设置卷标
- f_setcp - 设置活动代码页
-
系统底层函数
- disk_status - 获取设备状态
- disk_initialize - 初始化设备
- disk_read - 读取扇区
- disk_write - 写扇区
- disk_ioctl - 控制设备相关的功能
- get_fattime - 获取当前时间
-
系统源码结构