Flash損耗均衡的嵌入式文件系統(tǒng)設(shè)計(jì)
上述文件系統(tǒng)底層驅(qū)動函數(shù)中,凈簇的申請函數(shù)(unsigned long app_clus(void))直接影響到對存儲器存儲區(qū)域的使用分配。該函數(shù)的流程體現(xiàn)了對存儲器存儲區(qū)域的使用次數(shù)的平均分配。
函數(shù)功能描述:申請一個(gè)凈簇。
入口參數(shù):無。
出口參數(shù):0x100000,申請到凈簇的頁地址;NO_CLEAN_SECTOR,沒有干凈的存儲空間。
該函數(shù)的流程如圖4所示,程序從存儲區(qū)的第一頁開始到最后一頁申請一個(gè)凈簇,若成功,返回簇地址;若失敗,則進(jìn)行臟簇的清理,然后從清理過的存儲區(qū)中再申請一個(gè)凈簇,成功則返回簇地址,失敗則進(jìn)行錯(cuò)誤處理,程序結(jié)束。本文引用地址:http://www.bjwjmy.cn/article/150567.htm
3.3 Flash設(shè)備驅(qū)動
對文件系統(tǒng)的操作歸根結(jié)底是對存儲器的讀寫操作。文件操作時(shí)設(shè)備驅(qū)動程序?yàn)槲募?a class="contentlabel" href="http://www.bjwjmy.cn/news/listbylabel/label/系統(tǒng)">系統(tǒng)提供對存儲器的控制,一般包括讀、寫和復(fù)位操作。本文基于Flash芯片AT45DB081存儲器,為文件系統(tǒng)提供表3所列的驅(qū)動函數(shù)。
完成以上的軟硬件設(shè)計(jì),基于PC機(jī)編寫一個(gè)客戶端測試軟件,通過自定的協(xié)議對文件進(jìn)行操作,下載一個(gè)文件到文件系統(tǒng),之后讀取比較,從而驗(yàn)證文件系統(tǒng)的正確性。
結(jié)語
本文的方案主要針對存儲器的耗損均衡控制進(jìn)行了重點(diǎn)設(shè)計(jì),延長了Flash存儲器的使用壽命。對于文件的校錯(cuò)、糾錯(cuò)等其他功能并未詳細(xì)設(shè)計(jì),采用單級目錄,不支持多級目錄。整個(gè)方案已在由單片機(jī)ATmega128及Flash AT45DB081組成的系統(tǒng)上具體實(shí)現(xiàn)及驗(yàn)證,取得很好的效果。本文件系統(tǒng)在基于Flash存儲器的日志型數(shù)據(jù)采集記錄應(yīng)用中具有較高的應(yīng)用價(jià)值。
評論