嵌入式系統Flash存儲管理策略研究
5 分塊管理在嵌入式軟件系統中的實(shí)現
在嵌入式軟件的設計中, 良好的軟件架構設計可以使得軟件具有更好的可靠性及可擴展性。目前分層架構是嵌入式軟件系統設計中最為流行的一種[ 7] 。因此在軟件實(shí)現過(guò)程中, 采用了分層的軟件架構將分塊管理軟件分為Flash 驅動(dòng)層、No rFlash 分塊管理層和數據類(lèi)型管理層三層。具體的軟硬件分層示意圖如圖3 所示。

圖3 存儲模塊軟件構架
軟件最底層為Flash 驅動(dòng)層, 考慮到NOR Flash存儲器的多樣性, 并且各種器件的底層驅動(dòng)可能不同, 因此Flash 驅動(dòng)層的建立可以向分塊管理層屏蔽具體的硬件信息。一般驅動(dòng)層的實(shí)現主要采用函數指針的方法進(jìn)行[ 8] , 初始化時(shí)通過(guò)讀取不同Flash 的ID 分別對read、write 和erase 等基本操作函數指針進(jìn)行賦值, 此后上層軟件在對Flash 進(jìn)行實(shí)際操作時(shí)則通過(guò)函數指針進(jìn)行, 并不清楚具體的Flash 信息。在嵌入式系統中, 非易失性數據的種類(lèi)有多種多樣, 因此分塊管理層本身并不涉及具體類(lèi)型數據的存儲方法, 只是預留幾個(gè)字段用于記錄數據類(lèi)型等信息[ 9] 。這些字段用于數據類(lèi)型管理程序初始化時(shí)使用。數據類(lèi)型管理層的主要功能是管理NOR Flash存儲器中不同類(lèi)型的數據, 向應用程序提供基于數據類(lèi)型的各種操作, 屏蔽掉具體的分塊管理信息。分塊管理層程序負責資源回收算法、開(kāi)機Flash 異?;謴退惴ǖ膶?shí)現, 同時(shí)向數據類(lèi)型管理層提供各種類(lèi)型數據的所在的分塊地址信息。通過(guò)這種構架使得每一層的實(shí)現都易于采用面向對象的思想實(shí)現, 其中從底層至上層的對象分別Flash、分塊、數據類(lèi)型。本文引用地址:http://dyxdggzs.com/article/148242.htm
6 結語(yǔ)
通過(guò)采用分塊管理與狀態(tài)轉換的方法, Flash的存儲性能有了較大的改善, 而且數據的可靠性也有很大提高, 特別適用于無(wú)文件系統嵌入式設備中的數據存儲。同時(shí)通過(guò)合理的軟件構架使得各個(gè)分層都易于采用面向對象的思想實(shí)現, 這樣有利于軟件的擴展與移植。目前這種方法已經(jīng)在數字電視機頂盒中采用, 實(shí)現效果甚好, 并且為上層軟件的設計帶來(lái)很大方便。
評論