久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

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

基于MCF51QE128的SD卡文件系統設計

作者: 時間:2010-09-10 來源:網絡 收藏

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

本文引用地址:http://cqxgywz.com/article/151574.htm

6j1.jpg

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

6i.jpg


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

6j1.jpg

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

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

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

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

上一頁 1 2 3 下一頁

關鍵詞: 嵌入式

評論


相關推薦

技術專區

關閉