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