在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<abbr id="27omo"></abbr>

<menu id="27omo"><dl id="27omo"></dl></menu>
    • <label id="27omo"><tt id="27omo"></tt></label>

      新聞中心

      EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 在U-Boot中實(shí)現(xiàn)對(duì)Yaffs鏡像的支持

      在U-Boot中實(shí)現(xiàn)對(duì)Yaffs鏡像的支持

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

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

      本文引用地址:http://www.biyoush.com/article/201809/388999.htm

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

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


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

      關(guān)鍵詞: U-Boot Yaffs 鏡像

      評(píng)論


      相關(guān)推薦

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

      關(guān)閉