新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于ARM9和μC/OS-II的SD卡文件系統(tǒng)設(shè)計與實現(xiàn)

        基于ARM9和μC/OS-II的SD卡文件系統(tǒng)設(shè)計與實現(xiàn)

        作者: 時間:2012-08-09 來源:網(wǎng)絡(luò) 收藏

        2.2 文件系統(tǒng)設(shè)計
        2.2.1 FAT32文件系統(tǒng)概述
        Windows95 OSR2和Windows 98開始支持FAT32文件系統(tǒng),它是對早期DOS的FAT文件系統(tǒng)的增強,由于文件系統(tǒng)的核心一文件分配表FAT擴充為32位,所以稱為FAT32文件系統(tǒng)。FAT32包含DBR、保留扇區(qū)、FAT1、FAT2(第一個FAT的備份)、根目錄、數(shù)據(jù)區(qū)5部分。DBR(Dos Boot Rec ord)是操作系統(tǒng)引導(dǎo)記錄區(qū);保留扇區(qū)是為了對DBR作備份或留待以后升級時用;文件分配表區(qū)共保存了兩個相同的FAT表,文件所占用的存儲空間(簇鏈)及空閑空間的管理都是通過FAT實現(xiàn)的;FAT32根目錄區(qū)(ROOT區(qū))不再是固定區(qū)域、固定大小,可看作是數(shù)據(jù)區(qū)的一部分;數(shù)據(jù)區(qū)用來存放真正要記錄的文件數(shù)據(jù),本系統(tǒng)定義的一簇為4K個字節(jié)。
        2.2.2 文件系統(tǒng)初始化
        文件系統(tǒng)初始主要是讀取的DBR扇區(qū)(0扇區(qū)),并分析該扇區(qū)內(nèi)容,從而獲取每扇區(qū)字節(jié)數(shù),每簇扇區(qū)數(shù),F(xiàn)AT開始扇區(qū)號,根目錄開始扇區(qū)號等關(guān)鍵信息,為文件的創(chuàng)建,讀寫等操作做準(zhǔn)備,文件系統(tǒng)初始化函數(shù)代碼如下:

        e.JPG

        2.2.3 文件創(chuàng)建
        上創(chuàng)建文件或目錄的過程就是在文件目錄表FDT中申請登記項的過程,為此程序設(shè)計時定義了如下結(jié)構(gòu)體:

        f.JPG


        g.JPG


        在文件目錄項FDT中申請登記項動作就是通過對上述結(jié)構(gòu)體的操做來完成的,操作流程,也是文件創(chuàng)建流程如圖3所示,當(dāng)把插入卡插槽時,系統(tǒng)首先初始化SD卡,即讀取SD卡的DBR扇區(qū)(0扇區(qū))獲取相關(guān)信息,接下來打開所要創(chuàng)建文件的路徑,如果路徑不存在,創(chuàng)建該路徑,如果存在,搜尋FAT表,找空閑簇。再接下來把要創(chuàng)建的文件的相關(guān)信息(文件名,文件大小,創(chuàng)建時間,屬性等)填入上述結(jié)構(gòu)體,把該結(jié)構(gòu)體寫入文件目錄項FDT,相應(yīng)的扇區(qū)寫入數(shù)據(jù),最后更新FAT鏈表。文件創(chuàng)建實現(xiàn)函數(shù)為FAT32_Creat_File()。



        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 迭部县| 子长县| 天等县| 游戏| 潜山县| 平果县| 嘉祥县| 阿克陶县| 华宁县| 杨浦区| 澄城县| 江源县| 上饶县| 陇川县| 德令哈市| 溧水县| 扬州市| 麻栗坡县| 平泉县| 萍乡市| 信丰县| 青阳县| 靖江市| 杭州市| 临猗县| 灵丘县| 司法| 庄浪县| 桂平市| 凤阳县| 保定市| 延边| 阳西县| 霞浦县| 海晏县| 分宜县| 荔浦县| 合作市| 全南县| 白朗县| 宽甸|