SD卡與fatfs檔案系統 2

2021-08-05 23:10:01 字數 992 閱讀 2858

sd卡fat分割槽內容:

(1)主引導記錄mbr和分割槽表

mbr和分割槽表佔512個位元組(占用第1個扇區的空間):

分割槽表的內容:

(2)分割槽引導記錄

dbr 中記錄著檔案系統的起始位置、大小、每簇扇區數、fat表個數及大小等相關資訊。

分割槽啟動扇區的內容是fdc或fdc擴充套件描述符:

(3)檔案分配表

檔案系統分配磁碟空間按簇來分配。因此,檔案占有磁碟空間時,基本單位不是位元組而是簇,即使某個檔案只有乙個位元組,作業系統也會給它分配乙個最小單元:即乙個簇。對於大檔案,需要分配多個簇。同乙個檔案的資料並不一定完整地存放在磁碟中乙個連續地區域內,而往往會分若干段,像鍊子一樣存放。這種儲存方式稱為檔案的鏈式儲存。為了實現檔案的鏈式儲存,檔案系統必須準確地記錄哪些簇已經被檔案占用,還必須為每個已經占用的簇指明儲存後繼的下乙個簇的簇號,對於檔案的最後一簇,則要指明本簇無後繼簇。這些都是由fat表來儲存的,fat 表對應表項中記錄著它所代表的簇的有關資訊:諸如是空,是不是壞簇,是否是已經是某個檔案的尾簇等。

資料區的大小決定了fat表的大小,fat表可能有多個。

(4)根目錄

檔案系統剛被建立時,還沒有儲存任何資料時,根目錄下沒有任何內容,檔案系統只是為根目錄分配了乙個簇的空間(通常為 2號簇),將結束標記寫入該簇對應的 fat 表項,表示該簇已經被分配使用。這時候,為根目錄分配的空間沒有任何內容。

乙個目錄項占用32個位元組:

SD卡的讀寫和FatFS檔案系統

u8 spi readwritebyte u8 txdata spi匯流排讀寫乙個位元組 u8 sd waitready void 等待sd卡就緒 u8 sd sendcommand u8 cmd,u32 arg,u8 crc sd卡傳送乙個命令 u8 sd sendcommand nodeasse...

sd卡檔案系統

在手機tf卡經歷多次受損後 chksdk終於失去作用 換了讀卡器,先前的是用類似u盤的,後面是專業 先前手機執行狀態下解除安裝unmountsd卡再裝上測試可行 曾有多次 可能導致檔案系統內交叉鏈結太多 壞前有大量讀寫,直接執行解除安裝,結果檔案系統變成raw 尋求解答,發現原格式是fat檔案系統根...

製作SD卡檔案系統

一 先說一下關於檔案系統方面的東西 因為根檔案系統主要負責啟動執行的配置檔案,所以linux在啟動必須先掛載根檔案系統。這樣 在啟動後就可以自動或手動掛載其他檔案系統。常見的檔案系統型別 儲存裝置 檔案系統 型別 ramdram proc,sysfs,ranfs sdram rom各種 flash ...