基于TMS320LF2407A支持FAT32文件系統嵌入式軟件的實(shí)現
摘 要: 本文介紹了DSP TMS320LF2407A和FAT32文件系統結構,分析了基于TMS320LF2407A支持 FAT32文件系統結構的嵌入式軟件實(shí)現。
關(guān)鍵詞: TMS320LF2407A;FAT32;DSP
引言
近幾年來(lái),隨著(zhù)閃爍存儲技術(shù)的進(jìn)步,由于Flash閃爍存儲體系具有容量大和功耗低等優(yōu)點(diǎn),被廣泛用于數碼相機、媒體播放器和PDA等各種數碼產(chǎn)品中。當前各種流行的嵌入式操作系統雖然功能完備,但在許多具體的應用中,仍需要編寫(xiě)特定的系統控制軟件。數碼產(chǎn)品中一個(gè)必要的軟件模塊就是對一種或多種文件系統的支持。FAT32文件系統被Windows和Linux等當前流行的PC操作系統廣泛支持,這也是許多數碼產(chǎn)品選擇FAT32的原因。本文介紹了FAT32文件系統結構和基于DSP TMS320LF2407A為硬件平臺支持 FAT32文件系統結構的嵌入式軟件實(shí)現。
圖1 FAT32文件系統的實(shí)現機制
FAT32文件系統結構簡(jiǎn)介
單FAT32分區的磁盤(pán)或閃爍存儲器(以下沒(méi)有特殊情況均指單FAT32分區情況)由主引導區(MBR)、系統引導區、文件分配表FAT1、文件分配表備份FAT2、文件根目錄FDT和文件數據區組成,它們在磁盤(pán)上是順序分布的,如圖1所示。
主引導區從物理第一扇區開(kāi)始,記錄了第一磁盤(pán)分區的入口和剩余磁盤(pán)分區的入口信息、第一分區的文件系統格式、起始扇區號和大小。接下來(lái)就是FAT32文件系統的引導區,存放著(zhù)BPB參數和系統引導程序,如圖1左上方表格所示。然后是文件分配表及其備份FAT1和FAT2,用于管理和分配文件區的磁盤(pán)空間,其位置和大小由系統引導區中的參數計算可得。簇是FAT表給文件分配磁盤(pán)空間的最小單位,每個(gè)簇在FAT表中占有一個(gè)登記項,簇的編號與FAT登記項的編號一一對應。FAT表從第2個(gè)表項開(kāi)始分配給文件,最開(kāi)始兩個(gè)表項即序號為0和1的表項為保留表項值為:0FFFFFF8和FFFFFFFF。其它的表項則以鏈表的形式存放下一個(gè)在邏輯上連續的簇號值,結束用0FFFFFFF標記表示不再有后續的表項,用00000000表示該簇沒(méi)有被使用,FAT管理磁盤(pán)空間的工作機理如圖1所示。磁盤(pán)空間的最后的部分為根目錄和文件區,根目錄FDT、普通文件目錄和文件具體內容由FAT表統一管理,與FAT16文件系統為根目錄劃出專(zhuān)用的磁盤(pán)空間不同,這也是FAT32與FAT16的最大區別之一。在系統引導區第一扇區偏移量為2Ch處存放著(zhù)根目錄的入口簇號,根據FAT32系統信息可計算出根目錄的具體位置,一般根目錄的入口簇號為00000002。FAT32文件系統的文件登記表格式請參考圖1,限于篇幅這里不介紹超長(cháng)文件名。
另外,對于支持ATA協(xié)議標準塊存儲設備有物理尋址(CHS)和邏輯尋址(LBA)兩種方式。在物理尋址方式下,存儲空間通過(guò)磁頭(Head)、柱面(Cylinder)和扇區(Sector)三個(gè)參數組織起來(lái)的,每一組H/C/S參數唯一確定存儲載體中的一個(gè)扇區,通常一個(gè)扇區擁有512個(gè)字節的數據空間。邏輯尋址方式下,按照連續的邏輯扇區編號進(jìn)行尋址,使用28個(gè)數據位來(lái)表示邏輯扇區的地址。下面給出物理尋址方式與邏輯尋址方式的對應關(guān)系,設NS為每磁道扇區數,NH為磁頭數,C、H、S分別表示磁盤(pán)的柱面、磁頭和扇區編號,LBA表示邏輯扇區號,Div為整除計算,mod為求余計算,則:LBA=NH
評論