a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > YAFFS2在嵌入式系統中的實現

YAFFS2在嵌入式系統中的實現

作者: 時間:2010-06-01 來源:網絡 收藏
O 引言
隨著技術的不斷發展,的應用越來越廣泛,人們對于功能的要求也越來越高,相應地其大容量數據存儲和管理變得越來越重要。相對硬盤而言,FLASH等非易失性存儲器具有體積小、功耗低、成本低、抗震強等優點,已在嵌入式中被大量作為存儲設備使用,而大容量非易失數據存儲方案的應用還存在成本和軟件支持方面的問題需要克服。大頁NAND FLASH具有寫入速度快、容量大、成本低等優點,適合于需要進行數據存儲的場合。作為專門支持大頁NAND FLASH的文件系統在U-Boot和嵌入式Linux上一直沒有得到正式支持。本文結合部隊應用實際,在嵌入式Linux系統中了大頁NAND FLASH和文件系統的結合,為裝備的數據存儲處理搭建起了小型的智能化平臺。本文內容安排如下,首先介紹系統存儲方案特點和數據在大頁NAND FLASH上的儲存方式,然后詳細敘述系統移植和文件系統制作過程,最后對移植結果進行測試。

l 系統存儲方案設計
某國產化設備用于取代隨裝多臺套設備,除完成原設備的數據記錄功能外,還需進行數據翻譯、判讀,數據分析處理,二維顯示和三維動態復現等功能;同時,需存儲裝備長時間工作輸出的所有原始數據信息,類似黑匣子功能,以供事后分析使用。具有程序量大,數據需實時存儲,且數據存儲量大的特點。板上存儲設備包括SDRAM和FLASH,SDRAM為易失性存儲器,作為程序的運行空間和記錄數據的緩存空間;FLASH為非易失性存儲器,用于存儲系統軟件程序和記錄數據。
嵌入式系統中應用的FLASH主要有NORFLASH和NAND FLASH兩種。NOR FLASH的塊大小范圍為64~128 KB,其容量一般為l~32 MB,可作為嵌入式設備的啟動設備,適合于代碼存儲。NAND FLASH的塊大小范圍為8~64 KB,容量一般為8~512 MB,適合于數據存儲。它們之間的主要差別有以下幾點。
(1)速度。在寫數據和擦除數據時,NANDFLASH支持整塊擦寫操作,其速度比NOR FLASH要快得多,兩者相差近千倍;讀取時,NAND FLASH要先向芯片發送地址信息進行尋址才能開始讀寫數據,而NOR FLASH的操作則是以字或字節為單位進行的,直接讀取,所以讀取數據時,NOR FLASH效率更高。
(2)容量和成本。NOR FLASH的每個存儲單元與位線相連,增加了芯片內位線的數量,不利于存儲密度的提高。在面積和工藝相同的情況下,NANDFLASH的容量比NOR FLASH要大得多,生產成本更低。
(3)易用性。NAND FLASH的I/O端口采用復用的數據線和地址線,必須先通過寄存器串行地進行數據存取,各個產品或廠商對信號的定義不同,增加了應用的難度;NOR FLASH有專用的地址引腳來尋址,較容易與其他芯片進行連接,另外還支持片上執行XIP(eXecute In Place),應用程序可以直接在FLASH內部運行,簡化了產品設計。
(4)可靠性。由于FLASH的電器特性,在讀/寫數據過程中,會產生比特位反轉,造成一位或幾位數據錯誤。NAND FLASH位反轉的幾率比NOR FLASH高,在使用時需要使用EDC/ECC算法。NANDFLASH還可能會隨機分布壞塊。
(5)耐久性。FLASH由于寫入和擦除數據時會導致介質的氧化降解,導致芯片老化,所以并不適合頻繁地擦寫,NAND FLASH的擦寫次數是100萬次,而NOR FLASH只有10萬次。
基于以上分析,為了滿足經常性的進行實時快速大容量數據存儲和較長使用壽命的要求,采用NANDFLASH來存儲操作系統和數據,其復雜操作、比特位反轉和壞塊等問題可以通過文件系統解決。NORFLASH因為出現位反轉和壞塊的幾率小,并且讀取速度快,用來存儲啟動程序,能保證正常啟動系統的前提下提高設備反應時間。整個系統的存儲空間分配如圖1所示。

本文引用地址:http://www.j9360.com/article/151830.htm


整個系統存儲空間由SDRAM,NOR FLASH,NAND FLASH組成。其中,sDRAM分成程序空間(Prog Space)和數據空間(Data Space)。NORFLASH存儲系統啟動程序U-Boot;NAND FLAsH分成程序空間(Prog Space)和數據空間(Data Space),程序空間中固化存儲Linux操作系統和YAFFS2文件系統及相應的應用程序,在U-Boot的控制下,通過頁傳輸方式讀入SDRAM程序空間中;數據空間中存儲來自前端的原始數據,該數據在SDR-AM中打包,以頁方式將數據寫入NAND FLASH中,提高數據寫入速度。
對小頁NAND FLASH的文件系統支持已有比較多的編程實例可借鑒,而對本文使用的大頁NANDFLASH的編程支持還沒有完整的說明。因此,移植嵌入式操作系統,以建立對大頁NAND FLASH支持的文件系統是該存儲方案需解決的關鍵問題。

2 YAFFS/YAFFS2文件系統分析
目前廣泛應用的嵌入式文件系統有JFFS/JFFS2(JournaIling FLASH File Systern) 和 YAFFS/YAFFS2(Yet Another FLASH File Syst-em)。JFFS/JFFS2文件系統主要針對NOR FLASH設計,在NAND FLASH上性能不佳。YAFFS/YAFFS2文件系統是專門針對NAND FLASH設計,其具有可寫入、修改并能永久保存文件的特性,并提供了損耗平衡和掉電保護。與JFFS相比,它減少了一些功能,因此速度更快、占用內存更少。此外YAFFS自帶NANDFLASH芯片驅動,并為嵌入式系統提供了直接訪問文件系統的API,用戶可以不使用Linux中的MTD和VFS,直接對文件進行操作。
YAFFS文件系統已發展為兩個版本,YAFFS和YAFFS2。YAFFS版本只支持512 B的小頁NANDFLASH。而YAFFS2作為YAFFS的升級版,在向下兼容小頁NAND FLASH的同時也能夠更好地支持2 KB的大頁NAND FLASH。YAFFS2的性能與YAFFS相比有很大提高,表1為YAFFS,YAFFS2(512 B×8),YAFFS2(2 KB×8)三者性能比較,從測試結果可以看出,YAFFS2和2 KB大頁NANDFLASH的結合更好地提高了存儲器操作效率。


YAFFS2文件系統在設計時就充分考慮了大頁NAND FLASH的結構,根據大頁NAND FLASH以頁面為單位存取的特點,將文件組織成固定大小的頁,利用大頁NAND FLASH提供的每個頁面(2 112 B,其中前2 048 B存儲數據)64 B的備用空間(SpareData,OOB)來存放ECC和文件系統的組織信息,這樣不僅能夠錯誤檢測和壞塊處理,還能夠提高文件系統的加載速度。以三星公司的K9F1G08UOA的NANDFLASH為例,它的單片存儲容量為128 MB,由1 024 block組成,每個塊包含64 page,每個頁均包含一個2 048 B的數據區和64 B的備用空間,總共包含2 112 B。結構如圖2所示。

linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

上一頁 1 2 3 下一頁

評論


相關推薦

技術專區

關閉