国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

YAFFS文件系統在嵌入式Linux上的實現

發布時間:2010-8-31 10:19    發布者:techshare
關鍵詞: linux , YAFFS , 嵌入式 , 文件系統
隨著嵌入式技術在各種電子產品中的廣泛應用,嵌入式系統中的數據存儲和管理已經成為一個重要的研究課題。Flash存儲器具有速度快、容量大、成本低等很多優點,因此在嵌入式系統中被廣泛用做外存儲器件。Flash主要有NOR和NAND兩種類型。目前,針對NOR Flash設計的文件系統JFFS/JFFS2在嵌入式系統中已得到廣泛的應用;隨著NAND作為大容量存儲介質的普及,基于NAND閃存的文件系統YAFFS(Yet Another Flash File System)正逐漸被應用到嵌入式系統中。

NAND閃存介紹

NOR 和NAND是現在市場上兩種主要的非易失性閃存技術。NOR比較適合存儲程序代碼,其容量一般小于16MB;NAND則是高密度數據存儲的理想解決方案,其容量可達1GB以上。NAND閃存的存儲單元為頁和塊。一般來說,128MB以下容量芯片的一頁大小為528字節,依次分為2個256字節的主數據區,最后是16字節的備用空間;一個塊由若干頁組成,通常為32頁;一個存儲設備又由若干塊組成。與其他存儲器相比,NAND閃存具有以下特點:不是完全可靠的,每塊芯片出廠時都有一定比例的壞塊存在;各個存儲單元是不可直接改寫的,在每次改寫操作之前需要先擦除;擦除操作以塊為單位進行,而讀寫操作通常以頁為單位進行;各塊的擦除次數有限,一般為10萬"100萬次;使用復雜的I/O口串行存取數據。

YAFFS文件系統簡介

YAFFS類似于JFFS/JFFS2,是專門為NAND閃存設計的嵌入式文件系統,適用于大容量的存儲設備。它是日志結構的文件系統,提供了損耗平衡和掉電保護,可以有效地避免意外掉電對文件系統一致性和完整性的影響。YAFFS文件系統是按層次結構設計的,分為文件系統管理層接口、YAFFS內部實現層和NAND接口層,這樣就簡化了其與系統的接口設計,可以方便地集成到系統中去。與JFFS相比,它減少了一些功能,因此速度更快,占用內存更少。

YAFFS充分考慮了NAND閃存的特點,根據NAND閃存以頁面為單位存取的特點,將文件組織成固定大小的數據段。利用NAND閃存提供的每個頁面16字節的備用空間來存放ECC(Error Correction Code)和文件系統的組織信息,不僅能夠實現錯誤檢測和壞塊處理,也能夠提高文件系統的加載速度。YAFFS采用一種多策略混合的垃圾回收算法,結合了貪心策略的高效性和隨機選擇的平均性,達到了兼顧損耗平均和系統開銷的目的。

YAFFS文件組織結構

YAFFS將文件組織成固定大小(512字節)的數據段。每個文件都有一個頁面專門存放文件頭,文件頭保存了文件的模式、所有者id、組id、長度、文件名等信息。為了提高文件數據塊的查找速度,文件的數據段被組織成樹形結構。YAFFS在文件進行改寫時總是先寫入新的數據塊,然后將舊的數據塊從文件中刪除。YAFFS使用存放在頁面備用空間中的ECC進行錯誤檢測,出現錯誤后會進行一定次數的重試,多次重試失敗后,該頁面就被停止使用。

YAFFS物理數據組織

YAFFS充分利用了NAND閃存提供的每個頁面16字節的備用空間,參考了SmartMedia的設定,備用空間中6個字節被用作頁面數據的ECC,2個字節分別用作塊狀態字和數據狀態字,其余的8字節(64位)用來存放文件系統的組織信息,即元數據。由于文件系統的基本組織信息保存在頁面的備份空間中,因此,在文件系統加載時只需要掃描各個頁面的備份空間,即可建立起整個文件系統的結構,而不需要像JFFS 那樣掃描整個介質,從而大大加快了文件系統的加載速度。

YAFFS擦除塊和頁面分配

YAFFS中用數據結構來描述每個擦除塊的狀態。該數據結構記錄了塊狀態,并用一個32位的位圖表示塊內各個頁面的使用情況。在YAFFS中,有且僅有一個塊處于“當前分配”狀態。新頁面從當前進行分配的塊中順序進行分配,若當前塊已滿,則順序尋找下一個空閑塊。

YAFFS垃圾收集機制

YAFFS使用一種多策略混合的算法來進行垃圾回收,將貪心策略和隨機選擇策略按一定比例混合使用:當滿足特定的小概率條件時,垃圾回收器會試圖隨機選擇一個可回收的頁面;而在其他情況下,則使用貪心策略回收最“臟”的塊。通過使用多策略混合的方法,YAFFS能夠有效地改善貪心策略造成的不平均;通過不同的混合比例,則可以控制損耗平均和系統開銷之間的平衡。考慮到NAND的擦除很快(和NOR相比可忽略不計),YAFFS將垃圾收集的檢查放在寫入新頁面時進行,而不是采用JFFS那樣的后臺線程方式,從而簡化了設計。

YAFFS實現開發環境簡介

本文采用的是宿主機+目標板的開發模式。宿主機為PC+REDHAT9.0,目標板為三星公司的S3C2410+嵌入式Linux,版本為2.6.11.12。NAND閃存是三星公司64MB的K9F5608U0C。YAFFS的源碼可以從網站下載。

YAFFS移植:

1)在內核中建立YAFFS目錄fs/yaffs,并把下載的YAFFS代碼復制到該目錄下面。

2)修改fs/Kconfig,使得可以配置YAFFS。

3)修改fs/makefile,添加如下內容:obj-$(CONFIG_YAFFS_FS) += yaffs/

4)在生成的YAFFS目錄中生成Makefile 和Kconfig文件。


  
5)修改NAND分區。此分區要結合vivi里的分區進行設置,如下:


  
6)配置內核時選中MTD支持和YAFFS支持。

7)編譯內核并將內核下載到開發板的Flash中。

YAFFS文件系統測試:

1)內核啟動之后,啟動信息中應該含有如下內容:

  
  
2)如果在內核里面添加了proc文件系統的支持,那么proc中應該包含有關YAFFS的信息。

3)dev目錄下的相關目錄中包括有關NAND設備的信息。

4)建立mount目錄


  
將文件拷貝到mount上的目錄下后,umount設備,再次mount后可以發現拷貝的文件仍然存在。這時刪除該文件,然后umount,再次mount后可以發現拷貝的文件已經被刪除,由此可見該分區可以正常讀寫。

5)在Flash上建立根文件系統:


  
重新啟動,并改變啟動參數:param set linux_cmd_line "noinitrd root=/dev/mtdblock3 init=/linuxrc console="ttySAC0""再次重新啟動后,開發板就可以從Flash啟動根文件系統了。

結語

YAFFS是專門為NAND閃存設計的,它的出現使得價格低廉的NAND閃存芯片具有了高效性和健壯性。YAFFS文件系統性能優越且易于移植,已經成功應用于Linux、?Clinux和Windows CE等嵌入式操作系統上。現在,每頁大小為2Kb的新型超大容量NAND閃存已經出現,針對這種Flash的文件系統YAFFS2正處于研究和應用當中。可以預見,基于NAND閃存的文件系統YAFFS/ YAFFS2將會應用于更多的嵌入式系統。
本文地址:http://www.qingdxww.cn/thread-24729-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點宏來節省時間和空間
  • Dev Tool Bits——使用DVRT協議查看項目中的數據
  • Dev Tool Bits——使用MPLAB® Data Visualizer進行功率監視
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 97国产免费全部免费观看 | 日韩精品视频免费网址 | 久久免费播放视频 | 国产中文字幕免费观看 | 亚洲综合影院 | 欧美精品一二区 | 国产成人亚洲精品播放器下载 | 神兵小将第一部 | 国产高清精品一区 | 中文在线免费不卡视频 | 国产欧美日韩高清专区手机版 | 四虎播放| 免费高清资源黄网站在线观看 | 亚洲欧美日韩一区高清中文字幕 | 狠狠色狠狠色综合日日小蛇 | 国产精品成人免费视频 | 天堂 在线最新版在线 | 欧美精品一区二区三区久久 | 春日迟迟再出发综艺在线观看免费 | 免费jjzz在线播放国产 | 成人亚洲精品 | 网站国产 | 亚洲男人的天堂在线播放 | 国产高清在线视频一区二区三区 | 午夜黄色一级片 | 离线枕边人国语在线影视 | 欧美成人性生活 | 天天操精品视频 | 欧美日本一二三区 | 天美传媒果冻传媒星空传媒 | 国产午夜视频在永久在线观看 | 五月天综合在线 | 麻豆传煤天美传媒 | 四虎成人欧美精品在永久在线 | 日韩每日更新 | 五月婷婷久 | 成年人三级视频 | 国产中字| 999国产视频 | 久久综合久久鬼色 | 91最新网站免费 |