【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(六)-FatFs使用的思路介绍

【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(一)-初步认识SD卡

【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(二)-了解SD总线,命令的相关介绍

【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(三)-SD卡的操作流程

【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(四)-介绍库函数,获取一些SD卡的信息

【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(五)-文件管理初步介绍

【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(六)-FatFs使用的思路介绍

 未完待续(2020.12.13)... 

 

本篇要来介绍文件管理FatFs

官方的网站是:http://elm-chan.org/fsw/ff/00index_e.html

这是一个日本人写的,除了文件管理以外,还有其他的,例如解码JPEG、红外遥控等

在官网链接内,最下方有个Return,点击后就可以看到相关的开源库

 

以下开始正题(本文里提到的媒介,其实就是设备了,我不想改图了...)

打开官方网站,页面简单明了,就分为4个区块(以下图片为FatFs官网上截取的图片)

第一区块、介绍及特性(Features):FatFs是文件管理系统,可用于SD卡、硬盘(ATA)、RTC时钟,FTL和etc不清楚是什么,另外,也可以用于Flash或是EEPROM

【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(六)-FatFs使用的思路介绍

 

第二区块、应用接口(Application Interface):FatFs提供了接口,使得我们的应用可以和它交互。官网左侧为一些接口的介绍,例如《f_open》《f_close》

【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(六)-FatFs使用的思路介绍

 

第三区块、媒介访问接口(Media Access Interface):你想管理的存储设备,必须要和FatFs链接。官网左侧为一些函数的介绍,例如《disk_read》《disk_write》

【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(六)-FatFs使用的思路介绍

 

第四区块、资源(Resources):

【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(六)-FatFs使用的思路介绍

 

 

在这4个区块里,第2、3区块就算是说明文档了

我们先看第4个区块:资源

下载一个FatFs版本看看,就《FatFs R0.11a》这个吧

解压后,里面有2个档案,doc和src

doc(documents)其实不用看,因为文件夹里面的网页链接,其实就是文章开头的官方链接

src(source)源码,核心和接口都在这了,打开文件夹,里面的内容如下图

【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(六)-FatFs使用的思路介绍

图片内《ffconf.h》说的精简功能,指的是如果你只需要读,不需要写,那么可以在此头文件里设置,最终调用《f_open》《f_close》《f_read》即可,可节约文件管理,所需占用的空间

《diskio》指的底层就是你想读或写的设备,可能是SD卡,或是Flash...等等

 

 

其实文章到这里,该说的都差不多了,下面这张图,只是更详细描绘了各文件的功用

像是《f_open()》《disk_read()》这些函数,分别在第二区块和第三区块都能找到

【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(六)-FatFs使用的思路介绍

 

其实最终,我们完成三个任务就好

1、设定好《ffconf.h》的配置

2、连接我们的设备,修改《diskio.c》

3、未来在我们的应用里,完全使用接口,来处理任何事情

 

最后,来细讲一下《diskio.c》,文章前面提到的第二区块

【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(六)-FatFs使用的思路介绍

如果你的应用,只要读的功能就好,那么你实现(修改)下面三个函数就好

《disk_status》

《disk_initialize》

《disk_read》

 

如果还想要写的功能,还必须额外实现下面三个函数

《disk_write》

《get_fattime》

《Disk_ioctl(CTRL_SYNC)》

 

如果想要格式化的功能,要实现下面两个函数

《Disk_ioctl(GET_SECTOR_COUNT)》

《Disk_ioctl(GET_SECTOR_SIZE)》

 

还有一些其他的,有时间再补上吧

本篇到这里就结束了,下一章开始移植的工作

 

【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(六)-FatFs使用的思路介绍

上一篇:原生js获取兄弟元素


下一篇:MySQL数据库 - 单表&约束&事务