新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于ARM的嵌入式文件系统YAFFS的移植

基于ARM的嵌入式文件系统YAFFS的移植

作者: 时间:2012-04-12 来源:网络 收藏

6 配置和编译内核

1.选中对MTD(memory technology device内存技术设备)的支持.
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 主要是用于访问memory设备(ROM、flash)的Linux的子.MTD可以使新的memory设备的驱动更加简单,为此它在硬件和上层之间提供了一个抽象的接口.

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

这样就完成了内核对NAND FLASH的支持.

3.由于添加了2,所以在内核的配置菜单 [File systems] 中的 [miscellaneous filesystems] 中增加了 [Yaffs2 file systems support] 选项.这个选项就是 2的配置内容.
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

选择这个选项的全部内容,保存配置,然后退到终端,输入make zImage,重新编译内核,这样就就完成了对YAFFS的定制.

7 测试挂载的YAFFS系统

1.用imagewrite命令将YAFFS文件系统的映像文件烧写到mtdblock3分区.
2.在ramdisk根文件系统中创建挂载目录,使用命令mkdir /mnt/yaffs.
3. 执行mount –t yaffs /dev/mtdblock/3 /mnt/yaffs来挂载YAFFS文件系统.
4. 由于内核配置了proc文件系统,用cat /proc/mounts 可以查看已经成功挂载了YAFFS文件系统,用ls /mnt/yaffs可以查看YAFFS文件系统的内容.

8 结束语

本文为开发者提供了在9平台上YAFFS文件系统的方法和过程的参考,创新之处是在当前应用中比较新的2.6内核上测试完成的.测试过程中 YAFFS稳定性能比JFFS2文件系统要稳定的多,而且mount分区的时间也比JFFS2文件系统少的多。需要注意一点是,即使NAND FLASH 是512+16B的,不需要使用YAFFS2,也必须将对2kpage的NAND FLASH的支持这一项选上,否则编译无法通过.由于- S3C2410不支持大容量的NAND FLASH,所以flash是512+16B / page的,即使你选择的是YAFFS2文件系统,内核也会自动选择挂载为YAFFS1文件系统,由于实验系统的局限性,本文只在-S3C2410平台上实现了YAFFS1文件系统的,在功能更强大ARM 芯片系列中已经加入了对大容量(512M)的NAND FLASH的支持,支持YAFFS2文件系统,方法与YAFFS文件系统移植方法大致相同.

参考文献:
[1] 杜春雷,ARM体系结构与编程[M]。北京:清华大学出版社,2003
[2] 潘巨龙,黄宁,ARM9系统构建与应用[M]。北京:北京航空航天大学出版社,2006
[3] 陈 春,ARM9技术及Linux高级实践教程[M]。北京:北京航空航天大学出版社,2005
[4] Wookey and Tak—Shing,Porting the Linux Kernel to a New ARM Platform,SOLUTIONS JOURNAL,2002,4:52—57
[5] 郝淑风等.ARM的uCLinux启动引导实现的分析[J].微计算机信息,2005,8-2:50—52

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭