FatFs文件系统——(1)简介

系统官网 : http://elm-chan.org/fsw/ff/00index_e.html 

目录

文件系统

FatFs文件系统

FatFs系统特征

系统应用函数

系统底层函数

系统源码结构


 

  • 文件系统

文件系统是为了存储和管理数据,而在存储介质建立的一种组织结构,这些结构包括操作系统引导区、目录和文件。常见的 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 - 获取当前时间
  • 系统源码结构

FatFs文件系统——(1)简介_第1张图片

 

你可能感兴趣的:(嵌入式,STM32,文件系统)