新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于MCF51QE128的SD卡文件系統(tǒng)設計

        基于MCF51QE128的SD卡文件系統(tǒng)設計

        作者: 時間:2010-09-10 來源:網(wǎng)絡 收藏

        FATl6初始化子程序聲明為byte Init_FAT(FArl6_t*FAT,byte*buffer),部分代碼如下:

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

        6j1.jpg

        2.3 打開和創(chuàng)建文件
        打開和創(chuàng)建文件采用一個函數(shù)來實現(xiàn)。首先根據(jù)讀入的文件名查找根目錄,若有匹配項則打開文件,否則創(chuàng)建一個新文件。流程如圖6所示。

        6i.jpg


        打開和創(chuàng)建文件子程序聲明為byte Open_File(FILE_t*FILE,F(xiàn)ATl6_t*FAT,byte*buffer,byte*name)。部分代碼如下:

        6j1.jpg

        在根目錄中查找是否有文件項匹配,從根目錄的第1個扇區(qū)開始讀扇區(qū)。

        6j1.jpg
        根據(jù)文件起始簇號和根目錄的記錄項號,計算文件FAT表、根目錄和數(shù)據(jù)區(qū)的相關信息。對于根目錄和數(shù)據(jù)區(qū)的信息,已有文件和新文件的計算一致。如果是新文件,還需修改FAT表和根目錄記錄項。
        2.4 多扇區(qū)數(shù)據(jù)讀寫
        多扇區(qū)數(shù)據(jù)的讀寫是在打開文件的基礎上,以扇區(qū)為單位讀寫文件,可連續(xù)讀寫多個扇區(qū)數(shù)據(jù),同時寫入文件的屬性、日期和時間。寫數(shù)據(jù)的流程如圖7所示,讀數(shù)據(jù)與之類似。多扇區(qū)數(shù)據(jù)的寫子程序聲明為byte Write_File(FILE_t*FILE,F(xiàn)ATl6_t*FAT, byte attribute,word time,word date,dWOEd size_s,byte*buffer),根據(jù)寫入扇區(qū)數(shù)size_s,設置文件的寫入位置。首先將寫入扇區(qū)數(shù)與文件剩余扇區(qū)數(shù)進行比較,若寫入扇區(qū)數(shù)小于等于剩余扇區(qū)數(shù),則新寫入扇區(qū)數(shù)、簇數(shù)均為0,文件結(jié)束簇、寫簇號不變,不需要修改FAT表,僅修改根目錄中的文件長度。否則,需要計算新寫入扇區(qū)數(shù)和簇數(shù)。若有增加簇,則需修改FAT表,包括FATl和FAT2、根目錄的文件記,錄項。最后,將數(shù)據(jù)寫入文件數(shù)據(jù)區(qū)。

        結(jié)語
        本文基于Freescale公司MCF51QEl28微控制器,深入探討了SD卡上FATl6文件系統(tǒng)的存儲原則,給出了實現(xiàn)方案。軟件算法上,對單扇區(qū)數(shù)據(jù)讀寫進行改進,實現(xiàn)了連續(xù)多個扇區(qū)數(shù)據(jù)的讀寫,大大提高了文件的讀寫效率,特別適用于數(shù)據(jù)量較大的視頻、音頻數(shù)據(jù)采集系統(tǒng)的文件存儲。隨著SD卡的快速流行,在此類存儲設備中引入文件系統(tǒng)將得到更加廣泛的應用。

        linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

        上一頁 1 2 3 下一頁

        關鍵詞: 嵌入式

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 隆德县| 洛宁县| 炎陵县| 尤溪县| 如东县| 闽侯县| 永平县| 怀来县| 固镇县| 南康市| 嘉峪关市| 正蓝旗| 云林县| 永和县| 镇赉县| 克什克腾旗| 根河市| 呼伦贝尔市| 钦州市| 南平市| 辽中县| 巴彦县| 修文县| 麻栗坡县| 正定县| 余姚市| 乃东县| 南昌县| 大姚县| 新竹县| 洛川县| 呼玛县| 新兴县| 泸西县| 杭锦后旗| 平泉县| 巨鹿县| 定西市| 手机| 云阳县| 会理县|