• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > Blackfin輕量級內核VDK及其文件系統設計

    Blackfin輕量級內核VDK及其文件系統設計

    作者: 時間:2012-04-09 來源:網絡 收藏


    為提高存儲效率和方便管理,地址緩沖區的內容會被記錄在數據Nor Flash中,作為一個地址映射表.地址映射表體積不大,燒寫到Nor Flash時,可將燒寫代碼推入到的關鍵域中,因為燒寫時間小于兩次中斷間隔,這樣既不會照成中斷延時,又能保證燒寫工作一次完成。

    硬件平臺上電后,啟動線程首先讀取Nor Flash中的地址映射表到地址緩沖區,隨后基于地址緩沖區進行管理;如需更新壞塊信息,首先更新地址緩沖區,然后將地址緩沖區內容記錄到Nor Flash中。故而名為映射,實質是一種標記的方法。地址映射機制如圖2所示。

    圖2 地址映射機表的設置與使用

    3.3 壞塊回收

    Nand Flash芯片在出廠時就存在隨機壞塊,同時隨著使用時間的推移,一些有效塊也會因為編程的原因成為新的壞塊,故而存儲陣列在使用一段時間后,應當更新壞塊信息??紤]到陣列中的安全性和完整性,設置為存儲陣列為空時方能更新壞塊信息。

    格式化整個陣列后,存儲陣列中的FPGA芯片依次讀取每個數據塊的第一頁數據,如果發現非0xFF數據的個數超過設定閾值,就認為此數據塊為壞塊。之所以設定閾值而不是一有非0xFF數據就視為壞塊,是為了克服數據讀取的不穩定性。

    BF537讀取存儲陣列傳送來最新壞塊信息后,按照圖2中地址映射表設置的辦法,首先更新地址映射緩沖區,隨即將地址映射緩沖區的內容實時更新到數據Nor Flash中,保持兩者的同步。

    由于壞塊信息更新的時間可能較長,更新工作放在主線程中可能造成較大時延,影響主線程對用戶命令的響應,所以壞塊回收與標記可放在子線程中。

    3.4 磨損均衡

    Nand Flash芯片的編程次數有限,如果對某個數據塊操作過于頻繁,將迅速縮短其使用壽命,最終成為壞塊,乃至影響整個芯片的使用。如果均衡地使用Flash芯片的每個數據塊,對其操作的概率在較長時間內大體相當,這樣不僅能減少芯片壞塊的比例,也能延長存儲陣列的使用壽命。

    開源和商業的,都有較為完備的臟塊回收和磨損均衡的機制,但是其算法往往較復雜,同時需要將運行信息實時更新到Flash芯片中。在存儲速率要求很高的情況下,復雜的機制對存儲速率將不可避免地造成影響。

    文件系統關于磨損均衡的解決方案主要是順序存儲和陣列整理。文件存儲時,并不使用鏈式存儲,填充文件刪除所留下的空洞,而采用連續存儲的方式,將最新的文件存儲到當前所有文件的末尾。這樣不僅編程簡單,而且存儲陣列在一段時間后可能會被耗盡,此時如果刪除尾部的某些文件,那么下個的文件可以存儲在這些空余出來的位置;如果利用陣列整理功能將當前文件壓縮為連續緊湊的文件序列,去除文件刪除時留下的空洞,這樣整理出來的空間也可以繼續用于下次存儲。

    3.5 掉電保護

    嵌入式系統硬件平臺的工作環境一般較為惡劣,電源模塊隨時會有停止供電的可能。故而掉電保護是嵌入式文件系統的重點和難點。

    微軟的FNT文件系統的掉電保護主要針對FAT表,本文件系統也是基于這個理念。開始文件存儲時,子線程對發送的塊地址數目做一個計數,當計數量達到設定的閾值N后,將新文件的信息更新到文件目錄表緩沖區中,并立即將文件目錄表更新到Nor Flash中,兩個更新的操作不能被中斷,故而將這段代碼推入到關鍵域中。隨后將計數值清零,重新開始前一過程。如果在存儲過程中掉電,重新上電啟動后,開始新的存儲,系統會自動查詢存儲陣列最后一個文件的狀態標記,如果標記為暫存,則判定最后一個文件在存儲時遇到了掉電的情況,那么系統自動擦除該文件接下來N個數據塊的信息,然后最后一個文件開始新的存儲。

    文件刪除操作是在刪除動作完成后才更新文件目錄表,如果在刪除過程中掉電,那么上電后,用戶可以對該文件重新刪除。文件的拷貝和剪切是在操作前更新文件目錄表,如果在操作過程中出現斷電,重新上電后,用戶可先刪除拷貝后的新的文件,去除殘塊,然后開始新的操作。

    4 結束語

    介紹的嵌入式文件系統已在項目中成功投入使用,當然仍有許多方面需要改進。例如文件目錄表如果較長,線性遍歷耗時也會相對較長;文件目錄表沒有備份,如果更新文件列表時存儲系統出現掉電,該如何應對等。是ADI公司為自己的集成開發環境量身打造的,相對于Linux等開源系統來說,使用范圍可能較窄,但基于ADI的DSP使用自然有其得天獨厚的優勢。

    本文引用地址:http://www.czjhyjcfj.com/article/149266.htm

    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 漯河市| 凌海市| 长垣县| 青海省| 建阳市| 吉水县| 曲阜市| 辽宁省| 永仁县| 堆龙德庆县| 金乡县| 蒙城县| 兴安县| 鄱阳县| 宣威市| 西畴县| 应用必备| 罗山县| 乌兰县| 惠安县| 邹平县| 宜春市| 北票市| 静海县| 阿克| 中江县| 安溪县| 交口县| 磴口县| 阳朔县| 安乡县| 苗栗市| 湾仔区| 旌德县| 农安县| 泰安市| 焉耆| 临夏县| 望城县| 麦盖提县| 莫力|