【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会去处理

而我们只要调用这些接口就行了

原文地址:https://www.cnblogs.com/PureHeart/p/12097803.html