<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 在U-Boot中實(shí)現對Yaffs鏡像的支持

在U-Boot中實(shí)現對Yaffs鏡像的支持

作者: 時(shí)間:2009-08-26 來(lái)源:網(wǎng)絡(luò ) 收藏

0 引 言
是目前廣泛使用的嵌入式操作系統通用引導程序,具有功能豐富強大,多種操作系統和 CPU體系,易于功能擴展和移植,源碼開(kāi)放等多種優(yōu)點(diǎn)。能夠同時(shí)啟動(dòng)加載模式和下載模式。在下載模式下,可以通過(guò)自帶的 nand read/write等命令,配合.Jffs 2等參數,cramfs,Jffs 2等文件系統鏡像的讀寫(xiě),方便開(kāi)發(fā)過(guò)程的調試。文件系統是專(zhuān)門(mén)針對NAND FLASH設計的可讀寫(xiě)型文件系統,在NAND FLASH上性能穩定優(yōu)異。U-Boot自身沒(méi)有文件系統鏡像讀寫(xiě)的直接。由于文件系統的特殊結構,需要對nand命令做一定的修改,從而其在NANDFLASH上對Yaffs鏡像的讀寫(xiě)。

本文引用地址:http://dyxdggzs.com/article/152372.htm

1 相關(guān)工作簡(jiǎn)介
1.1 Yaffs文件系統結構簡(jiǎn)述
目前,嵌入式系統中常用的FLASH文件系統有Cramfs,Jffs 2,Yaffs,exfat等。Cramfs是一種壓縮型只讀型文件系統,其在系統啟動(dòng)時(shí)解壓至內存中運行。Jffs 2,Yaffs,Exfat等是可讀寫(xiě)型文件系統,Jffs 2一般應用于NOR型FLASH;Exfat不是開(kāi)源的文件系統實(shí)現,一般應用于Windows CE操作系統中。Yaffs是一種專(zhuān)門(mén)針對NAND FLASH設計的可讀寫(xiě)型文件系統,它能針對嵌入式存儲器的功能要求提供損耗平衡、掉電保護等。Yaffs文件系統的源代碼開(kāi)放,在多種嵌入式操作系統中移植十分方便。
通常一個(gè)NAND FLASH存儲設備由若干塊組成;1個(gè)塊由若干頁(yè)組成。一般128 MB以下容量的NAND FLASH芯片,一頁(yè)大小為528 B,依次分為2個(gè)256 B的主數據區和16 B的額外空間;128 MB以上容量的NAND FLASH芯片,一頁(yè)大小通常為2 KB。由于NAND FLASH出現位反轉的概率較大,一般在讀寫(xiě)時(shí)需要使用ECC進(jìn)行錯誤檢驗和恢復。
Yaffs文件系統的設計充分考慮到NAND FLASH以頁(yè)為存取單位等的特點(diǎn),將文件組織成固定大小的段(Chunk)。以528 B的頁(yè)為例,Yaffs文件系統使用前512 B存儲數據、16 B的額外空間,用以存放數據的ECC和文件系統的組織信息等(稱(chēng)為OOB數據)。通過(guò)OOB數據,不但能實(shí)現錯誤檢測和壞塊處理;同時(shí)可以避免加載時(shí)對整個(gè)存儲介質(zhì)的掃描,加快了文件系統的加載速度。一個(gè)頁(yè)面的具體結構如表1所示。

由此可知,與其他文件系統相比,在生成Yaffs鏡像時(shí)就包含了OOB數據,所以在燒寫(xiě)Yaffs鏡像時(shí),不需要計算ECC,僅依次寫(xiě)入512 B的數據和16 B的OOB數據即可。同時(shí),Yaffs鏡像要使用分區上的第一個(gè)塊來(lái)存儲一個(gè)名為Yaffs_ObjectHeader的結構體。該結構體記錄了該分區中的文件、路徑以及相關(guān)的鏈接,所以在燒寫(xiě)時(shí)還需要跳過(guò)第一個(gè)可用的塊。Yaffs文件系統目前常用的版本為Yaffs 2,性能在許多方面都有了很大的提高。
1.2 U-Boot對常見(jiàn)文件系統的支持
在實(shí)際開(kāi)發(fā)過(guò)程中,一般使用引導程序,比如U-Boot,完成文件向FLASH中的燒寫(xiě)和啟動(dòng)引導等工作。U-Boot能夠支持Cramfs,Jffs 2文件系統的燒寫(xiě)。這些文件系統是針對NOR型FLASH設計的,所有文件數據就是簡(jiǎn)單的線(xiàn)性表組織形式。對于目前大量使用的NAND型FLASH,由于帶有用于數據校驗等功能的OOB區,所以Yaffs文件系統的數據組織形式不再是線(xiàn)性表的形式。
U-Boot沒(méi)有提供對Yaffs文件系統的讀寫(xiě)支持。但由于該文件系統的讀寫(xiě)過(guò)程與其他文件系統的讀寫(xiě)類(lèi)似,因此可以通過(guò)修改U-Boot的FLASH讀寫(xiě)命令,增加處理00B區域數據的功能,即可以實(shí)現對Yaffs文件系統的讀寫(xiě)支持。


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: 支持 Yaffs 實(shí)現 U-Boot

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>