新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > MMC卡文件系統(tǒng)的實(shí)現(xiàn)

        MMC卡文件系統(tǒng)的實(shí)現(xiàn)

        作者: 時間:2010-12-12 來源:網(wǎng)絡(luò) 收藏

          
        3

        單片機(jī)對底層的讀寫,按照FATl6的格式對卡上數(shù)據(jù)進(jìn)行操作,就可在MMC卡上創(chuàng)建、讀寫和刪除文件等,從而文件的管理。
          
        3.1 文件(或目錄)的創(chuàng)建

        在MMC卡上創(chuàng)建文件(或目錄)的過程就是在文件目錄表FDT中申請登記項的過程。登記項中包括文件名、文件長度和起始簇號等內(nèi)容。為此定義了如下結(jié)構(gòu):

        本文引用地址:http://www.104case.com/article/151231.htm

          
        文件名一般占用8字節(jié),長的文件名需要用resetx,ed[]數(shù)組。文件名的首字節(jié)又表明該文件的狀態(tài),00H表示該目錄項未使用,E5H表示該文件(或目錄)已被刪除。創(chuàng)建目錄時,屬性值設(shè)置為10H(表示子目錄),文件長度為O。
        3.2 文件的讀寫

        MMC卡上文件都是以簇為單位存取的。當(dāng)讀取MMC卡上的文件時,首先要根據(jù)文件名查找到該文件的目錄登記項。根據(jù)目錄登記項中的起始簇號既可找到文件在數(shù)據(jù)區(qū)DATA中第1簇的內(nèi)容,又可在FAT表中找到第2個簇號。根據(jù)第2個簇號又能找到第2簇的內(nèi)容和FAT表中的第3個簇號。這樣,就可以根據(jù)FAT表中的簇號讀取到全部文件數(shù)據(jù)。寫文件時要保證FATl和FAT2中內(nèi)容的一致性,即對兩塊都要進(jìn)行同樣的寫操作。對于FATl6,可以由下面的公式計算出數(shù)據(jù)起始邏輯扇區(qū)號:
          
        起始邏輯扇區(qū)一隱藏扇區(qū)數(shù)+l+2*每FAT扇區(qū)數(shù)+FDT扇區(qū)數(shù)+(起始簇號-2)*每簇扇區(qū)數(shù)從表l可知,MMC卡上隱藏的扇區(qū)數(shù)為0,每個FAT占用243個扇區(qū),F(xiàn)DT固定占用32個扇區(qū)。寫文件的相關(guān)代碼如下(設(shè)文件長度小于512字節(jié)):

          
        3.3 文件的刪除

        文件的刪除也是對MMC卡上文件管理的一個重要方面。刪除文件時,并不涉及數(shù)據(jù)區(qū)的操作,只須在文件的目錄登記項上作一個刪除標(biāo)記,并把文件在FAT表中所占用的簇標(biāo)記為“空簇”。刪除文件的代碼如下:

        1.jpg



        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 衡南县| 邛崃市| 准格尔旗| 阳泉市| 时尚| 资中县| 苍山县| 车致| 普兰店市| 剑河县| 阿瓦提县| 黄石市| 鄂伦春自治旗| 金坛市| 彭山县| 清原| 中卫市| 裕民县| 彰化市| 阜康市| 呈贡县| 双牌县| 汶上县| 深州市| 尖扎县| 潮安县| 调兵山市| 永济市| 泾阳县| 唐河县| 柯坪县| 荥经县| 长葛市| 临夏市| 定南县| 册亨县| 静海县| 修水县| 屯昌县| 犍为县| 自贡市|