【STM32】使用SDIO进行SD卡读写,包含文件管理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使用的思路介绍
【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(七)-准备移植FatFs
【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(八)-认识内存管理
【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(终)-配合内存管理来遍历SD卡
本章只是介绍文件管理是如何处理的,和我们要调用第三方开源库,是没任何关系的
具体要不要读这章,各位客官随意吧
一、文件管理的作用是什么?
是为了把存储区域不浪费的使用
只要在存储区域内,划出一部分空间,给文件管理代码使用,它就能有效的利用剩余空间
硬盘、U盘、SD卡等,执行格式化后,也就是在做这个动作
截这张图,我还特别紧张,E盘都是我的重要文件,一旦开始格式化我就完了...
NTFS是另一个文件管理
FatFs支持FAT12、FAT16、FAT32
二、格式化做了什么?
在格式化的时候,会做两件事情
1.添加文件分配表(记录文件存放的位置)
2.添加目录(记录文件名、开始簇、日期时间等信息)
这里介绍一下,什么是簇?
簇,是文件管理最小的一个存储单位,由文件管理决定多少字节为一个簇
像上图,格式化的时候,可以设定分配单元大小,4096字节就是一个簇
有了簇的概念,后面可以讲《文件分配表》和《目录》
三、文件是如何进行管理的?
这里我们先举个例子,先往空间里面存储3个档案,分别为A、B、C
A、B、C的文件大小,分别为1、2、3簇
那么它的存储情况、文件分配表,以及目录如下
这时候呢,我们把B文件删除
第3和4簇就空出来了,接着,我们添加一个D文件,文件大小为4簇
由于D文件有4簇,超过了原本B文件所占的2簇
所以文件会把D文件里的2簇,存在B原本的位置,然后再往后找剩余的位置,存储剩余的档案
事实上,文件存储在何处,我们可以不用管,这些,文件管理FatFs会去处理
而我们只要调用这些接口就行了