1、文件系统简介
- FatFs 是面向小型嵌入式系统的一种通用的 FAT 文件系统
- 由 ANSI C 语言编写并且完全独立于底层的 I/O 介质 ,因此它可以很容易地不加修改地移植到其他的处理器
当中,如 8051、 PIC、 AVR、 SH、 Z80、 H8、 ARM 等。 FatFs 支持 FAT12、 FAT16、
FAT32 等格式。
在移植 FatFs 文件系统到开发板之前,我们先要到 FatFs 的官网获取源码, 官网有对FatFs做详细的介绍 解压之后可看到里面有 doc 和 src 这两个文件夹,见图 26-2。 doc 文件夹里面是一些使用帮助文档; src 才是 FatFs 文件系统的源码。
src目录下有option目录、diskio.c、00history.txt、00readme.txt,这几个文件主要有以下几个作用:
- option 文件夹下是一些可选的外部 c 文件,包含了多语言支持需要用到的文件和转换函数。
- diskio.c 文件是 FatFs 移植最关键的文件,它为文件系统提供了最底层的访问 SPI Flash芯片的方法, FatFs 有且仅有它需要用到与 SPI Flash 芯片相关的函数。 diskio.h 定义了FatFs 用到的宏,以及 diskio.c 文件内与底层硬件接口相关的函数声明
- 00history.txt 介绍了 FatFs 的版本更新情况。
- 00readme.txt 说明了当前目录下 diskio.c 、 diskio.h、 ff.c、 ff.h、 integer.h 的功能。
src 文件夹下的源码文件功能简介如下:
- integer.h: 文件中包含了一些数值类型定义。
- diskio.c: 包含底层存储介质的操作函数,这些函数需要用户自己实现,主要添加底层驱动函数。
- ff.c: FatFs 核心文件,文件管理的实现方法。该文件独立于底层介质操作文件的函数,利用这些函数实现文件的读写。
- cc936.c: 本文件在 option 目录下,是简体中文支持所需要添加的文件,包含了简体中文的 GBK 和 Unicode 相互转换功能函数。
- ffconf.h:这个头文件包含了对 FatFs 功能配置的宏定义, 通过修改这些宏定义就可以裁剪 FatFs 的功能。如需要支持简体中文,需要把 ffconf.h 中的_CODE_PAGE的宏改成 936 并把上面的 cc936.c 文件加入到工程之中。
2、FatFs程序结构图