FatFS文件系统
一、定义
1、基本概念
-
文件系统,是为了存储和管理数据,再存储介质上建立的一种组织结构。
-
结构包括:操作系统引导区、目录、文件
-
常用的文件系统格式:FAT32、NTFS、exFAT
2、特点
- 文件系统一般与驱动层分离,如此方便直接移植;
- FatFS是针对小型嵌入式系统的通用文件系统,纯C编写;
- FatFs支持FAT12、FAT16、FAT32格式
- FATFS支持多物理设备,如FLASH、SD等
- FLASH芯片一个扇区大小为4Kb,SD卡一个扇区大小为0.5Kb
3、FatFS移植时源文件夹介绍
-
option文件夹:可选外部c文件,包括语言转换函数等;
-
diskio.c :核心文件,为文件系统提供最底层访问SPI Flash芯片的方法,包含底层存储介质的操作函数,需要自己实现,主要添加底层驱动
函数
-
diskio.h :定义了宏,以及底层硬件接口的函数声明;
-
ff.c:核心文件,文件管理的实现方法;
-
ffffconf.h: 包含了对 FatFs 功能配置的宏定义,通过修改这些宏定义就可以裁剪FatFs 的功能。如需要支持简体中文,需要把 ffffconf.h 中的 _CODE_PAGE 的宏改成 936 并把上面的 cc936.c 文件加入到工程之中;
-
integer.h:文件中包含了一些数值类型定义。
一般只需要修改ffcong.h和diskio,c两个文件
二、用途
- 与USB结合使用,将嵌入式系统用作“U盘”功能;
三、如何用
1、FatFS移植步骤
- 编写基础的 SPI - FALSH芯片驱动
- 拷贝FatFS文件夹到工程中,并在Keil中添加文件夹、.c文件以及配置头文件路径
- 修改dikio.c和ffconf.h文件
- 将diskio.c中的底层驱动函数与SPI FLASH芯片的驱动连接;
2、使用注意
- 使用文件之前,必须先用f_open 函数打开文件,不再使用文件必须使用f_close函数关闭文件;