日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于NAND閃存的文件系統(tǒng)YAFFS在嵌入式系統(tǒng)中的應(yīng)用

 目前,針對NOR Flash設(shè)計(jì)的文件系統(tǒng)JFFS/JFFS2在嵌入式系統(tǒng)中已得到廣泛的應(yīng)用;隨著NAND作為大容量存儲介質(zhì)的普及,基于NAND閃存的文件系統(tǒng)YAFFS(Yet Another Flash File System)正逐漸被應(yīng)用到嵌入式系統(tǒng)中。

  NAND閃存介紹

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

  YAFFS文件系統(tǒng)簡介

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

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

  YAFFS文件組織結(jié)構(gòu)

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

  YAFFS物理數(shù)據(jù)組織

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

  YAFFS擦除塊和頁面分配

  YAFFS中用數(shù)據(jù)結(jié)構(gòu)來描述每個(gè)擦除塊的狀態(tài)。該數(shù)據(jù)結(jié)構(gòu)記錄了塊狀態(tài),并用一個(gè)32位的位圖表示塊內(nèi)各個(gè)頁面的使用情況。在YAFFS中,有且僅有一個(gè)塊處于“當(dāng)前分配”狀態(tài)。新頁面從當(dāng)前進(jìn)行分配的塊中順序進(jìn)行分配,若當(dāng)前塊已滿,則順序?qū)ふ蚁乱粋€(gè)空閑塊。

  YAFFS垃圾收集機(jī)制

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

  YAFFS實(shí)現(xiàn)開發(fā)環(huán)境簡介

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

  YAFFS移植:

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

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

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

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

  


 

  5)修改NAND分區(qū)。此分區(qū)要結(jié)合vivi里的分區(qū)進(jìn)行設(shè)置,如下:[!--empirenews.page--]

  

 

  6)配置內(nèi)核時(shí)選中MTD支持和YAFFS支持。

  7)編譯內(nèi)核并將內(nèi)核下載到開發(fā)板的Flash中。

  YAFFS文件系統(tǒng)測試:

  1)內(nèi)核啟動之后,啟動信息中應(yīng)該含有如下內(nèi)容:

  

 

  2)如果在內(nèi)核里面添加了proc文件系統(tǒng)的支持,那么proc中應(yīng)該包含有關(guān)YAFFS的信息。

  3)dev目錄下的相關(guān)目錄中包括有關(guān)NAND設(shè)備的信息。

  4)建立mount目錄

  

 

  將文件拷貝到mount上的目錄下后,umount設(shè)備,再次mount后可以發(fā)現(xiàn)拷貝的文件仍然存在。這時(shí)刪除該文件,然后umount,再次mount后可以發(fā)現(xiàn)拷貝的文件已經(jīng)被刪除,由此可見該分區(qū)可以正常讀寫。

  5)在Flash上建立根文件系統(tǒng):

  

 

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

  結(jié)語

  YAFFS是專門為NAND閃存設(shè)計(jì)的,它的出現(xiàn)使得價(jià)格低廉的NAND閃存芯片具有了高效性和健壯性。YAFFS文件系統(tǒng)性能優(yōu)越且易于移植,已經(jīng)成功應(yīng)用于Linux、?Clinux和Windows CE等嵌入式操作系統(tǒng)上?,F(xiàn)在,每頁大小為2Kb的新型超大容量NAND閃存已經(jīng)出現(xiàn),針對這種Flash的文件系統(tǒng)YAFFS2正處于研究和應(yīng)用當(dāng)中。可以預(yù)見,基于NAND閃存的文件系統(tǒng)YAFFS/ YAFFS2將會應(yīng)用于更多的嵌入式系統(tǒng)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

Lua RTOS 是一個(gè)實(shí)時(shí)操作系統(tǒng),設(shè)計(jì)在嵌入式系統(tǒng)上運(yùn)行,對 FLASH 和 RAM 內(nèi)存的要求最低。目前 Lua RTOS 可用于 ESP32, ESP8266 和 PIC32MZ 平臺,并可以輕松移植到其他32位...

關(guān)鍵字: Lua RTOS 操作系統(tǒng) 嵌入式系統(tǒng)

通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱作UATR,是一種串行、異步、全雙工的收發(fā)器。全雙工的UART支持同時(shí)雙向通信,是嵌入式系統(tǒng)必不可少的d...

關(guān)鍵字: 異步收發(fā) 傳輸器 嵌入式系統(tǒng)

北京2022年10月11日 /美通社/ -- 在四川大涼山深處,有一只"涼山黑鷹"少年籃球隊(duì):隊(duì)員平均年齡12歲,平均身高1米3,球隊(duì)剛成立時(shí),連個(gè)像樣的球場都沒有。然而,憑著一腔熱情和驚人天賦,這只...

關(guān)鍵字: 網(wǎng)絡(luò) BSP 內(nèi)核 騰訊

Flash Memory 是一種非易失性的存儲器。在嵌入式系統(tǒng)中通常用于存放系統(tǒng)、應(yīng)用和數(shù)據(jù)等。在 PC 系統(tǒng)中,則主要用在固態(tài)硬盤以及主板 BIOS 中。

關(guān)鍵字: Flash 存儲器 嵌入式系統(tǒng)

ARM的全稱為Advanced RISC Machines,直譯為高級精簡指令集處理器;RISC即為精簡指令集,那么對應(yīng)的就存在CISC,其為復(fù)雜指令集。

關(guān)鍵字: ARM 內(nèi)核 SoC

近年來,隨著計(jì)算機(jī)技術(shù)及集成電路技術(shù)的發(fā)展,嵌入式技術(shù)日漸普及,在通訊、網(wǎng)絡(luò)、工控、醫(yī)療、電子等領(lǐng)域發(fā)揮著越來越重要的作用。嵌入式系統(tǒng)無疑成為當(dāng)前最熱門最有發(fā)展前途的IT應(yīng)用領(lǐng)域之一。?嵌入式系統(tǒng)一般由嵌入式微處理器、外...

關(guān)鍵字: 嵌入式 嵌入式系統(tǒng) 計(jì)算機(jī)

上海2022年9月8日 /美通社/ -- 中國家居人齊聚滬上,點(diǎn)亮行業(yè)高質(zhì)量發(fā)展之光。9月6日,家居行業(yè)盛事——家居產(chǎn)業(yè)高質(zhì)量發(fā)展大會暨"月星之夜"在上海月星國際家居生活MALL舉行,數(shù)百位...

關(guān)鍵字: BSP HID 內(nèi)核 大賽

據(jù)統(tǒng)計(jì),隨著Intel閃存業(yè)務(wù)被SK海力士收購,韓國企業(yè)三星+SK海力士合計(jì)占市場份額已經(jīng)超過50%。

關(guān)鍵字: 閃存 NAND閃存 三星 海力士

深圳2022年8月26日 /美通社/ -- 8月17日 – 深圳,AMD Xilinx舉辦為期一天的線下技術(shù)日活動,在AMD Xilinx主辦下宜鼎國際作為合作伙伴的身份被邀...

關(guān)鍵字: AMD Xilinx AGENT 嵌入式系統(tǒng)

上海2022年8月25日 /美通社/ -- 新茶飲下半場,從價(jià)格戰(zhàn)、產(chǎn)品戰(zhàn)、渠道戰(zhàn)上升至品牌內(nèi)核的競爭,打動年輕消費(fèi)者更需要在審美和品牌價(jià)值上做文章。新一代年輕人的...

關(guān)鍵字: 美團(tuán) IP MIDDOT 內(nèi)核

嵌入式軟件

15715 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉