【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
第二区块、应用接口(Application Interface):FatFs提供了接口,使得我们的应用可以和它交互。官网左侧为一些接口的介绍,例如《f_open》《f_close》
第三区块、媒介访问接口(Media Access Interface):你想管理的存储设备,必须要和FatFs链接。官网左侧为一些函数的介绍,例如《disk_read》《disk_write》
第四区块、资源(Resources):
在这4个区块里,第2、3区块就算是说明文档了
我们先看第4个区块:资源
下载一个FatFs版本看看,就《FatFs R0.11a》这个吧
解压后,里面有2个档案,doc和src
doc(documents)其实不用看,因为文件夹里面的网页链接,其实就是文章开头的官方链接
src(source)源码,核心和接口都在这了,打开文件夹,里面的内容如下图
图片内《ffconf.h》说的精简功能,指的是如果你只需要读,不需要写,那么可以在此头文件里设置,最终调用《f_open》《f_close》《f_read》即可,可节约文件管理,所需占用的空间
《diskio》指的底层就是你想读或写的设备,可能是SD卡,或是Flash...等等
其实文章到这里,该说的都差不多了,下面这张图,只是更详细描绘了各文件的功用
像是《f_open()》《disk_read()》这些函数,分别在第二区块和第三区块都能找到
其实最终,我们完成三个任务就好
1、设定好《ffconf.h》的配置
2、连接我们的设备,修改《diskio.c》
3、未来在我们的应用里,完全使用接口,来处理任何事情
最后,来细讲一下《diskio.c》,文章前面提到的第二区块
如果你的应用,只要读的功能就好,那么你实现(修改)下面三个函数就好
《disk_status》
《disk_initialize》
《disk_read》
如果还想要写的功能,还必须额外实现下面三个函数
《disk_write》
《get_fattime》
《Disk_ioctl(CTRL_SYNC)》
如果想要格式化的功能,要实现下面两个函数
《Disk_ioctl(GET_SECTOR_COUNT)》
《Disk_ioctl(GET_SECTOR_SIZE)》
还有一些其他的,有时间再补上吧
本篇到这里就结束了,下一章开始移植的工作