基于A(yíng)RM9和μC/OS-II的SD卡文件系統設計與實(shí)現
2.2 文件系統設計
2.2.1 FAT32文件系統概述
Windows95 OSR2和Windows 98開(kāi)始支持FAT32文件系統,它是對早期DOS的FAT文件系統的增強,由于文件系統的核心一文件分配表FAT擴充為32位,所以稱(chēng)為FAT32文件系統。FAT32包含DBR、保留扇區、FAT1、FAT2(第一個(gè)FAT的備份)、根目錄、數據區5部分。DBR(Dos Boot Rec ord)是操作系統引導記錄區;保留扇區是為了對DBR作備份或留待以后升級時(shí)用;文件分配表區共保存了兩個(gè)相同的FAT表,文件所占用的存儲空間(簇鏈)及空閑空間的管理都是通過(guò)FAT實(shí)現的;FAT32根目錄區(ROOT區)不再是固定區域、固定大小,可看作是數據區的一部分;數據區用來(lái)存放真正要記錄的文件數據,本系統定義的一簇為4K個(gè)字節。
2.2.2 文件系統初始化
文件系統初始主要是讀取SD卡的DBR扇區(0扇區),并分析該扇區內容,從而獲取每扇區字節數,每簇扇區數,FAT開(kāi)始扇區號,根目錄開(kāi)始扇區號等關(guān)鍵信息,為文件的創(chuàng )建,讀寫(xiě)等操作做準備,文件系統初始化函數代碼如下:
2.2.3 文件創(chuàng )建
SD卡上創(chuàng )建文件或目錄的過(guò)程就是在文件目錄表FDT中申請登記項的過(guò)程,為此程序設計時(shí)定義了如下結構體:
在文件目錄項FDT中申請登記項動(dòng)作就是通過(guò)對上述結構體的操做來(lái)完成的,操作流程,也是文件創(chuàng )建流程如圖3所示,當把SD卡插入卡插槽時(shí),系統首先初始化SD卡,即讀取SD卡的DBR扇區(0扇區)獲取相關(guān)信息,接下來(lái)打開(kāi)所要創(chuàng )建文件的路徑,如果路徑不存在,創(chuàng )建該路徑,如果存在,搜尋FAT表,找空閑簇。再接下來(lái)把要創(chuàng )建的文件的相關(guān)信息(文件名,文件大小,創(chuàng )建時(shí)間,屬性等)填入上述結構體,把該結構體寫(xiě)入文件目錄項FDT,相應的扇區寫(xiě)入數據,最后更新FAT鏈表。文件創(chuàng )建實(shí)現函數為FAT32_Creat_File()。
評論