天堂888-欧美黄色小说-熟睡侵犯の奶水授乳在线-初尝情欲h名器av-亚洲天堂免费视频-日韩五十路-免费在线国产-国产又大又黄又粗-久草导航-色播导航-亚洲免费资源-熟女一区二区三区视频-亚洲美女视频在线-亚洲成人福利视频-婷婷精品在线-亚洲综合p-中文字幕 日本-亚洲骚片-亚洲自拍偷拍网-国产农村妇女精品一区二区-午夜中出-久久精品国产精品亚洲毛片-91精品毛片-99爱视频在线-狠狠操亚洲-美女让人操-里番本子纯肉侵犯肉全彩无码-999偷拍

HCS12X單片機的SD卡FAT文件系統讀寫設計[5]

終端與業務 責任編輯:hwl0288 2010-11-19

摘要:3.6應用層函數接口FAT文件系統向應用層設計了如下幾個初級程序接口:GetFilelnfo(UINT8*FInfo,FileInfo*TempFilelnfo)(獲取文件信息),OutPut_RootFileinfo(void)(輸出根目錄文件信息),DirOr(UINT8FileAttrib)(判斷目錄),GetNextCluster(UINTl6TempCluster)(獲取下一文件簇信息),OutPutFileCluster(UINTl6TempS

  3.6 應用層函數接口

  FAT文件系統向應用層設計了如下幾個初級程序接口:Get Filelnfo(UINT8*F Info,FileInfo*TempFilelnfo)(獲取文件信息),OutPut _RootFileinfo(void)(輸出根目錄文件信息),DirOr(UINT8 FileAttrib)(判斷目錄),Get Next Cluster(UINTl6 TempCluster)(獲取下一文件簇信息),OutPutFileCluster(UINTl6 TempStart Cluster)(輸出文件簇地址),OutPutFile(UINTl6 Temp StartCluster)(輸出文件內容),ShowClusterContent(UINTl6 TempCluster)(輸出簇內容)。通過這些初級程序接口實現了OpenDir(UINTl6 TempStartCluster)(目錄打開),FileDelete(文件刪除),FileDataRead(文件數據讀取),FileCreate(UINTl6 TempStartCluster,UINT32TempFileLength)(文件創建)等功能。

  3.6.1 目錄讀取及文件信息獲取

  FAT文件系統的具體文件和目錄項都是通過讀取ROOT目錄來進行查找的,所以FAT的文件排布是以樹形的結構排布。對于FAT來說,目錄項與文件項在同一目錄中是同樣占32個字節的屬性項。研究中使用了1個數據結構Filelnfo來存儲文件信息,并通過if(Temp_F_Info[0x0b]&0x l0)來分辨文件與目錄。

  在FAT文件系統中,文件是以簇的形式保存在SD卡中的,簇的排布是不連續的,1個文件如果大于1個簇的話,則要通過FAT表來查找該文件所有簇所在的位置,從而找到整個文件。目錄一般只占有1個簇的大小,在FAT表中等同于小于1個簇的小文件,值顯示為FF。

  目錄是以文件的形式存儲在父目錄中的,目錄中的文件信息記錄了該文件的起始簇以及文件的大小,知道了文件的起始簇,通過FAT表中的信息可以很方便地找到文件的下一個簇的位置,并由文件的大小判斷出文件的結束位置。

  3.6.2 文件的讀寫

  在FAT文件系統中,讀取文件只需要知道該文件的起始簇以及大小便可以很方便地得到整個文件的信息。讀取步驟是:獲取根目錄信息,通過根目錄信息找到下一層目錄所在簇位置,通過下一層目錄信息遞歸找到文件所在目錄,讀取文件信息屬性,得到文件的起始簇位置和文件大小,通過FAT表遞歸查找到文件的全部簇地址,最終以FF結尾;根據文件大小判斷文件的結束位置,最后輸出整個文件。

  文件的創建和寫入則是通過FAT表查找未被使用的空簇(值為00),寫滿1簇之后再查找下一未被使用的空簇,并同時更新FAT1表和FAT2表。然后在文件所被創建的目錄信息中添加文件信息,最終實現文件的創建。

[1]  [2]  [3]  [4]  [5]  [6]  

更多資料
更多課程
更多真題
溫馨提示:因考試政策、內容不斷變化與調整,本網站提供的以上信息僅供參考,如有異議,請考生以權威部門公布的內容為準!

通信工程師備考資料免費領取

去領取

專注在線職業教育25年

信息系統項目管理師

信息系統項目管理師

信息系統項目管理師

!
咨詢在線老師!