其他鏈接
【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會去處理
而我們只要調用這些接口就行了