新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM的嵌入式文件系統(tǒng)YAFFS的移植

基于ARM的嵌入式文件系統(tǒng)YAFFS的移植

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

6 配置和編譯內(nèi)核

1.選中對(duì)MTD(memory technology device內(nèi)存技術(shù)設(shè)備)的支持.
Memory Technology Device (MTD)
support --->
[~] MTD concatenating support
• MTD partitioning support
[~] RedBoot partition table parsing
[~] Command line partition table parsing
User Modules And Translation Layers
• Direct char device access to MTD devices
• Caching block device access to MTD devices

MTD 主要是用于訪問(wèn)memory設(shè)備(ROM、flash)的Linux的子.MTD可以使新的memory設(shè)備的驅(qū)動(dòng)更加簡(jiǎn)單,為此它在硬件和上層之間提供了一個(gè)抽象的接口.

2.選中NAND Device Support
• NAND Device Support --->
[~] Verify NAND page writes
• NAND Flash support for S3C2410/S3C2440 SoC
• S3C2410 NAND driver debug
[~] S3C2410 NAND Hardware ECC

這樣就完成了內(nèi)核對(duì)NAND FLASH的支持.

3.由于添加了2,所以在內(nèi)核的配置菜單 [File systems] 中的 [miscellaneous filesystems] 中增加了 [Yaffs2 file systems support] 選項(xiàng).這個(gè)選項(xiàng)就是 2的配置內(nèi)容.
File systems ---> Miscellaneous filesystems --->
2 file system support
--- 512 byte / page devices
• Lets Yaffs do its own ECC
• Use the same ecc byte order as Steven Hill's nand_ecc.c
--- 2048 byte (or larger) / page devices
• Autoselect yaffs2 format
• Disable lazy loading
• Turn off wide tnodes
• Turn off debug chunk erase check
• Cache short names in RAM

選擇這個(gè)選項(xiàng)的全部?jī)?nèi)容,保存配置,然后退到終端,輸入make zImage,重新編譯內(nèi)核,這樣就就完成了對(duì)YAFFS的定制.

7 測(cè)試掛載的YAFFS系統(tǒng)

1.用imagewrite命令將YAFFS文件系統(tǒng)的映像文件燒寫(xiě)到mtdblock3分區(qū).
2.在ramdisk根文件系統(tǒng)中創(chuàng)建掛載目錄,使用命令mkdir /mnt/yaffs.
3. 執(zhí)行mount –t yaffs /dev/mtdblock/3 /mnt/yaffs來(lái)掛載YAFFS文件系統(tǒng).
4. 由于內(nèi)核配置了proc文件系統(tǒng),用cat /proc/mounts 可以查看已經(jīng)成功掛載了YAFFS文件系統(tǒng),用ls /mnt/yaffs可以查看YAFFS文件系統(tǒng)的內(nèi)容.

8 結(jié)束語(yǔ)

本文為開(kāi)發(fā)者提供了在9平臺(tái)上YAFFS文件系統(tǒng)的方法和過(guò)程的參考,創(chuàng)新之處是在當(dāng)前應(yīng)用中比較新的2.6內(nèi)核上測(cè)試完成的.測(cè)試過(guò)程中 YAFFS穩(wěn)定性能比JFFS2文件系統(tǒng)要穩(wěn)定的多,而且mount分區(qū)的時(shí)間也比JFFS2文件系統(tǒng)少的多。需要注意一點(diǎn)是,即使NAND FLASH 是512+16B的,不需要使用YAFFS2,也必須將對(duì)2kpage的NAND FLASH的支持這一項(xiàng)選上,否則編譯無(wú)法通過(guò).由于- S3C2410不支持大容量的NAND FLASH,所以flash是512+16B / page的,即使你選擇的是YAFFS2文件系統(tǒng),內(nèi)核也會(huì)自動(dòng)選擇掛載為YAFFS1文件系統(tǒng),由于實(shí)驗(yàn)系統(tǒng)的局限性,本文只在-S3C2410平臺(tái)上實(shí)現(xiàn)了YAFFS1文件系統(tǒng)的,在功能更強(qiáng)大ARM 芯片系列中已經(jīng)加入了對(duì)大容量(512M)的NAND FLASH的支持,支持YAFFS2文件系統(tǒng),方法與YAFFS文件系統(tǒng)移植方法大致相同.

參考文獻(xiàn):
[1] 杜春雷,ARM體系結(jié)構(gòu)與編程[M]。北京:清華大學(xué)出版社,2003
[2] 潘巨龍,黃寧,ARM9系統(tǒng)構(gòu)建與應(yīng)用[M]。北京:北京航空航天大學(xué)出版社,2006
[3] 陳 春,ARM9技術(shù)及Linux高級(jí)實(shí)踐教程[M]。北京:北京航空航天大學(xué)出版社,2005
[4] Wookey and Tak—Shing,Porting the Linux Kernel to a New ARM Platform,SOLUTIONS JOURNAL,2002,4:52—57
[5] 郝淑風(fēng)等.ARM的uCLinux啟動(dòng)引導(dǎo)實(shí)現(xiàn)的分析[J].微計(jì)算機(jī)信息,2005,8-2:50—52

linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)

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

評(píng)論


相關(guān)推薦

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

關(guān)閉