在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > HCS12X單片機(jī)的SD卡FAT文件系統(tǒng)讀寫設(shè)計(jì)

            HCS12X單片機(jī)的SD卡FAT文件系統(tǒng)讀寫設(shè)計(jì)

            作者: 時(shí)間:2010-11-15 來(lái)源:網(wǎng)絡(luò) 收藏

            e.jpg

            3.6 應(yīng)用層函數(shù)接口
            FAT文件系統(tǒng)向應(yīng)用層設(shè)計(jì)了如下幾個(gè)初級(jí)程序接口:Get Filelnfo(UINT8*F Info,F(xiàn)ileInfo*TempFilelnfo)(獲取文件信息),OutPut _RootFileinfo(void)(輸出根目錄文件信息),DirOr(UINT8 FileAttrib)(判斷目錄),Get Next Cluster(UINTl6 TempCluster)(獲取下一文件簇信息),OutPutFileCluster(UINTl6 TempStart Cluster)(輸出文件簇地址),OutPutFile(UINTl6 Temp StartCluster)(輸出文件內(nèi)容),ShowClusterContent(UINTl6 TempCluster)(輸出簇內(nèi)容)。通過(guò)這些初級(jí)程序接口實(shí)現(xiàn)了OpenDir(UINTl6 TempStartCluster)(目錄打開),F(xiàn)ileDelete(文件刪除),F(xiàn)ileDataRead(文件數(shù)據(jù)讀取),F(xiàn)ileCreate(UINTl6 TempStartCluster,UINT32TempFileLength)(文件創(chuàng)建)等功能。
            3.6.1 目錄讀取及文件信息獲取
            FAT文件系統(tǒng)的具體文件和目錄項(xiàng)都是通過(guò)讀取ROOT目錄來(lái)進(jìn)行查找的,所以FAT的文件排布是以樹形的結(jié)構(gòu)排布。對(duì)于FAT來(lái)說(shuō),目錄項(xiàng)與文件項(xiàng)在同一目錄中是同樣占32個(gè)字節(jié)的屬性項(xiàng)。研究中使用了1個(gè)數(shù)據(jù)結(jié)構(gòu)Filelnfo來(lái)存儲(chǔ)文件信息,并通過(guò)if(Temp_F_Info[0x0b]0x l0)來(lái)分辨文件與目錄。
            在FAT文件系統(tǒng)中,文件是以簇的形式保存在SD卡中的,簇的排布是不連續(xù)的,1個(gè)文件如果大于1個(gè)簇的話,則要通過(guò)FAT表來(lái)查找該文件所有簇所在的位置,從而找到整個(gè)文件。目錄一般只占有1個(gè)簇的大小,在FAT表中等同于小于1個(gè)簇的小文件,值顯示為FF。
            目錄是以文件的形式存儲(chǔ)在父目錄中的,目錄中的文件信息記錄了該文件的起始簇以及文件的大小,知道了文件的起始簇,通過(guò)FAT表中的信息可以很方便地找到文件的下一個(gè)簇的位置,并由文件的大小判斷出文件的結(jié)束位置。

            3.6.2 文件的讀寫
            在FAT文件系統(tǒng)中,讀取文件只需要知道該文件的起始簇以及大小便可以很方便地得到整個(gè)文件的信息。讀取步驟是:獲取根目錄信息,通過(guò)根目錄信息找到下一層目錄所在簇位置,通過(guò)下一層目錄信息遞歸找到文件所在目錄,讀取文件信息屬性,得到文件的起始簇位置和文件大小,通過(guò)FAT表遞歸查找到文件的全部簇地址,最終以FF結(jié)尾;根據(jù)文件大小判斷文件的結(jié)束位置,最后輸出整個(gè)文件。
            文件的創(chuàng)建和寫入則是通過(guò)FAT表查找未被使用的空簇(值為00),寫滿1簇之后再查找下一未被使用的空簇,并同時(shí)更新FAT1表和FAT2表。然后在文件所被創(chuàng)建的目錄信息中添加文件信息,最終實(shí)現(xiàn)文件的創(chuàng)建。
            3.6.3 文件的刪除
            在FAT文件系統(tǒng)中,對(duì)文件的刪除不需要把整個(gè)文件信息全部清除,只需要清除FAT表中的文件簇信息以及目錄中的文件信息,避免了對(duì)SD卡的頻繁讀寫,同時(shí)也節(jié)省了時(shí)間。

            結(jié)語(yǔ)
            本設(shè)計(jì)將SD卡的存儲(chǔ)方式應(yīng)用到系統(tǒng)中,簡(jiǎn)化了復(fù)雜的文件數(shù)據(jù)的存儲(chǔ)設(shè)計(jì),減小了系統(tǒng)的尺寸,提高了系統(tǒng)的可靠性,使得對(duì)文件的讀出和存取簡(jiǎn)單易行。對(duì)FAT裁減實(shí)現(xiàn)了嵌入式文件系統(tǒng),提高了系統(tǒng)的存儲(chǔ)能力,同時(shí)也增強(qiáng)了與PC級(jí)之間的通信能力,簡(jiǎn)化了繁瑣的調(diào)試。采用Freescale 16位單片機(jī)MC9S12XSl28MAA的串行外設(shè)接口SPI對(duì)SD卡進(jìn)行訪問(wèn),加快了整個(gè)系統(tǒng)的設(shè)計(jì)進(jìn)度。實(shí)踐證明,該設(shè)計(jì)讀寫SD卡文件信息的速度以及穩(wěn)定性滿足調(diào)試要求。該設(shè)計(jì)只需對(duì)底層驅(qū)動(dòng)進(jìn)行簡(jiǎn)單修改就可直接應(yīng)用于MMC卡、Micro SD卡等其他存儲(chǔ)介質(zhì)上。


            上一頁(yè) 1 2 3 4 下一頁(yè)

            關(guān)鍵詞: 單片機(jī)

            評(píng)論


            相關(guān)推薦

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

            關(guān)閉