MMC卡文件系統的實現
3 MMC卡文件系統的實現
單片機對MMC底層的讀寫,按照FATl6的格式對MMC卡上數據進行操作,就可在MMC卡上創建文件、讀寫文件和刪除文件等,從而實現文件的管理。
3.1 文件(或目錄)的創建
在MMC卡上創建文件(或目錄)的過程就是在文件目錄表FDT中申請登記項的過程。登記項中包括文件名、文件長度和起始簇號等內容。為此定義了如下結構:
本文引用地址:http://www.j9360.com/article/151231.htm
文件名一般占用8字節,長的文件名需要用resetx,ed[]數組。文件名的首字節又表明該文件的狀態,00H表示該目錄項未使用,E5H表示該文件(或目錄)已被刪除。創建目錄時,屬性值設置為10H(表示子目錄),文件長度為O。
3.2 文件的讀寫
MMC卡上文件都是以簇為單位存取的。當讀取MMC卡上的文件時,首先要根據文件名查找到該文件的目錄登記項。根據目錄登記項中的起始簇號既可找到文件在數據區DATA中第1簇的內容,又可在FAT表中找到第2個簇號。根據第2個簇號又能找到第2簇的內容和FAT表中的第3個簇號。這樣,就可以根據FAT表中的簇號讀取到全部文件數據。寫文件時要保證FATl和FAT2中內容的一致性,即對兩塊都要進行同樣的寫操作。對于FATl6,可以由下面的公式計算出數據起始邏輯扇區號:
起始邏輯扇區一隱藏扇區數+l+2*每FAT扇區數+FDT扇區數+(起始簇號-2)*每簇扇區數從表l可知,MMC卡上隱藏的扇區數為0,每個FAT占用243個扇區,FDT固定占用32個扇區。寫文件的相關代碼如下(設文件長度小于512字節):
3.3 文件的刪除
文件的刪除也是對MMC卡上文件管理的一個重要方面。刪除文件時,并不涉及數據區的操作,只須在文件的目錄登記項上作一個刪除標記,并把文件在FAT表中所占用的簇標記為“空簇”。刪除文件的代碼如下:
評論