Flash損耗均衡的嵌入式文件系統(tǒng)設計
上述文件系統(tǒng)底層驅動函數中,凈簇的申請函數(unsigned long app_clus(void))直接影響到對存儲器存儲區(qū)域的使用分配。該函數的流程體現了對存儲器存儲區(qū)域的使用次數的平均分配。
函數功能描述:申請一個凈簇。
入口參數:無。
出口參數:0x100000,申請到凈簇的頁地址;NO_CLEAN_SECTOR,沒有干凈的存儲空間。
該函數的流程如圖4所示,程序從存儲區(qū)的第一頁開始到最后一頁申請一個凈簇,若成功,返回簇地址;若失敗,則進行臟簇的清理,然后從清理過的存儲區(qū)中再申請一個凈簇,成功則返回簇地址,失敗則進行錯誤處理,程序結束。本文引用地址:http://cqxgywz.com/article/150567.htm

3.3 Flash設備驅動
對文件系統(tǒng)的操作歸根結底是對存儲器的讀寫操作。文件操作時設備驅動程序為文件系統(tǒng)提供對存儲器的控制,一般包括讀、寫和復位操作。本文基于Flash芯片AT45DB081存儲器,為文件系統(tǒng)提供表3所列的驅動函數。

完成以上的軟硬件設計,基于PC機編寫一個客戶端測試軟件,通過自定的協(xié)議對文件進行操作,下載一個文件到文件系統(tǒng),之后讀取比較,從而驗證文件系統(tǒng)的正確性。
結語
本文的方案主要針對存儲器的耗損均衡控制進行了重點設計,延長了Flash存儲器的使用壽命。對于文件的校錯、糾錯等其他功能并未詳細設計,采用單級目錄,不支持多級目錄。整個方案已在由單片機ATmega128及Flash AT45DB081組成的系統(tǒng)上具體實現及驗證,取得很好的效果。本文件系統(tǒng)在基于Flash存儲器的日志型數據采集記錄應用中具有較高的應用價值。








評論