引言
在便攜電子裝置中,隨著系統複雜性的增加,儲存容量的擴大,嵌入檔案系統成為一種必然趨勢。而flash儲存器由於具有儲存容量大、掉電資料不丟 失、何種小以及可多次擦寫等許多優點,正逐步取代其他半導體儲存器件而廣泛應用於便攜電子產品中。在flash儲存器中使用檔案系統,可將儲存空間當作直 觀的命名空間,不用在每次應用開發中都從頭使用儲存器,還可方便地利用標準介面同主系統通訊。
本文中,我們將以嵌入式作業系統wince為背景,來討論嵌入式手持移動終端中檔案系統的實現。
wince檔案系統結構
wince檔案系統採用了模組化設計,允許自定義檔案系統、篩選器和多種不同的塊裝置型別。檔案系統和所有與檔案相關的api都是通過filesys.exe程序來管理的。
filesys.exe 由下列幾個元件組成:
·rom檔案系統
·儲存管理器
·物件儲存
rom檔案系統是基於rom的檔案系統。用來固化系統資訊。
儲存管理器 (storage manager),負責管理系統中的儲存裝置,以及用於訪問它們的檔案系統。儲存管理器功能由系統中的fsdmgr.dll模組實現。其主要的組成部分為 塊裝置驅動程式管理器、分割槽管理器、檔案系統驅動程式管理器。儲存管理器元件之間的關係如圖1所示。
圖1 儲存管理器元件之間的關係
物件儲存是乙個記憶體堆,由filesys.exe控制。物件儲存包含ram系統登錄檔、ram檔案系統和屬性資料庫。它們都是filesys.exe模組的可選元件。ram檔案系統和屬性資料庫是完全可選的,並且在某些系統中可以根本不存在。
filesys.exe各元件之間的關係如圖2所示。
圖2 filesys.exe各元件之間的關係圖
作業系統啟動時,nk.exe將直接從rom檔案系統載入filesys.exe。然後,filesys.exe對rom檔案系統內的預設登錄檔進行初始化。接著,filesys.exe將讀取登錄檔項,以便啟動各種應用程式。
我們在wince檔案結構的基礎上構建自檔案系統。
構建基於pxa272儲存器的嵌入式檔案系統
嵌入式手持裝置硬體結構如圖3所示。其主要由嵌入式微控制器pxa272,採集單元,顯示單元,儲存單元,通訊模組和電源單元構成。
圖3 手持裝置終端硬體結構框圖
intel pxa272處理器是intel公司推出的32位,基於xscale架構的高效能的嵌入式晶元。其工作頻率為512mhz,內部整合64mb nor flash。我們在nor flash上基於wince的檔案結構來構建我們自己的檔案系統。
先將flash劃分位三部分,第一部分存放eboot和512k配置檔案,第二部分存放32m的nk.bin,最後一部分劃為32m的檔案系統,其具體劃分如圖4所示。
圖4 flash的劃分
psm(peristent storage manage)是inter公司獨有技術,是專門為weince系統定製的,它為各種flash儲存裝置提供了統一的裝置介面,支援inter的cpu架 構。我們利用psm作為儲存管理器,用微軟提供的flash驅動構建檔案系統,支援fat格式的檔案。其系統結構圖如圖5所示。
圖5 系統檔案結構圖
最後,檔案系統的配置檔案是一組登錄檔值,用於定義有關塊裝置和應當如何在系統中使用它的資訊。配置檔案位於登錄檔 hkey_local_machine /system/storagemanager/profiles下,每個配置檔案都是位於基本配置檔案項的下面,以此配置檔案名稱標識的項。例如,我們 利用了inter的psm檔案系統,其配置檔案位於登錄檔hkey_local _machine/system/storagemanager /profiles/psmfsd下。flash驅動的配置檔案位於登錄檔hkey_local_ machine/drivers/builtin/stratafmd下,在此檔案系統中,我們使用了微軟自帶的flash驅動。
結語
此檔案系統已經在手持移動終端上得到應用,和上層的資料庫系統實現對接。經過多次測試,此檔案系統穩定可靠,效果良好。可以用來儲存大量資料而且又 能滿足不同需求。相對於trueffs檔案系統,在可靠性、系統資源開銷等方面的效能提高是可觀的,特別是和inter的flash相結合時。
儲存器層次結構 基於儲存器的程式優化
乙個編寫良好的電腦程式常常具有良好的區域性性,它們傾向於引用鄰近於其他最近引用過的資料項的資料項,或者最近引用過的資料項本身。區域性性通常有兩種不同的形式 下面來看個區域性性的 示例 變數sum在每此迴圈中被引用一次,因此具有良好的時間區域性性。變數v的元素被順序讀取,具有良好的空間區域性性。像這種...
基於PSRAM技術的IoT ram儲存器解決方案
迅速發展的iot繼續為消費者和行業帶來革命性的變化,並增強了他們的日常使用體驗,尤其是在邊緣增加處理能力的需求下。健身追蹤器和智慧型揚聲器,農業及工廠機器都是這樣的例子。特定的應用程式都規定了記憶體要求。豐富的嵌入式物聯網體驗推動了對更多外部板載記憶體的需求。在這些應用程式中新增ai ml進一步改變...
基於VUEX的公共儲存器store的快速上手流程
vuex 使用單一狀態樹 是的,用乙個物件就包含了全部的應用層級狀態。至此它便作為乙個 唯一資料來源 ssot 而存在。這也意味著,每個應用將僅僅包含乙個 store 例項。單一狀態樹讓我們能夠直接地定位任一特定的狀態片段,在除錯的過程中也能輕易地取得整個當前應用狀態的快照。export defau...