目录标题
包含。c文件
3.5lib库文件添加sdio和dma
包含路径
ru图
复制文件夹和文件
main。c—include
//fatfs
#include "malloc.h"
#include "sdio_sdcard.h"
#include "ff.h"
#include "exfuns.h"
提升下载速度【加入fatfs后超过64k,ram调试不可用,只能FLASH下载】
修改文件【复制过来的文件已经设置好了】
FATFS 模块在移植的时候,我们一般只需要修改 2 个文件,即 ffconf.h 和 diskio.c。 FATFS
模块的所有配置项都是存放在 ffconf.h 里面,我们可以通过配置里面的一些选项,来满足自己的需求。接下来我们介绍几个重要的配置选项。
1)_FS_TINY。这个选项在 R0.07 版本中开始出现,之前的版本都是以独立的 C 文件出现(FATFS 和 Tiny FATFS),有了这个选项之后,两者整合在一起了,使用起来更方便。我们使用 FATFS,所以把这个选项定义为 0 即可。
2)_FS_READONLY。这个用来配置是不是只读,本章我们需要读写都用,所以这里设置为 0 即可。
3)_USE_STRFUNC。这个用来设置是否支持字符串类操作,比如 f_putc,f_puts 等,本章我们需要用到,故设置这里为 1。
4)_USE_MKFS。这个用来定时是否使能格式化,本章需要用到,所以设置这里为 1。
5)_USE_FASTSEEK。这个用来使能快速定位,我们设置为 1,使能快速定位。
6)_USE_LABEL。这个用来设置是否支持磁盘盘符(磁盘名字)读取与设置。我们设置为 1,使能,就可以通过相关函数读取或者设置磁盘的名字了。
7)_CODE_PAGE。这个用于设置语言类型,包括很多选项(见 FATFS 官网说明),我们这里设置为 936,即简体中文(GBK 码,需要 c936.c 文件支持,该文件在 option 文件夹)。
8)_USE_LFN。该选项用于设置是否支持长文件名(还需要_CODE_PAGE 支持),取值范围为 03。0,表示不支持长文件名,13 是支持长文件名,但是存储地方不一样,我们选择使用 3,通过 ff_memalloc 函数来动态分配长文件名的存储区域。
9)_VOLUMES。用于设置 FATFS 支持的逻辑设备数目,我们设置为 2,即支持 2 个设备。
10)_MAX_SS。扇区缓冲的最大值,一般设置为 512。
下面我们来讲讲 FATFS 的移植,FATFS 的移植主要分为 3 步:
① 数据类型:在 integer.h 里面去定义好数据的类型。这里需要了解你用的编译器的数
据类型,并根据编译器定义好数据类型。
② 配置:通过 ffconf.h 配置 FATFS 的相关功能,以满足你的需要。
③ 函数编写:打开 diskio.c,进行底层驱动编写,一般需要编写 6 个接口函数,如
图 44.1.2 所示: