YAFFS文件系统在嵌入式Linux上的实现

技术分类: 工程软件/硬件    作者:毛勇强 黄光明  发表时间:2006-03-03
已满,则顺序寻找下一个空闲块。
YAFFS垃圾收集机制
      YAFFS使用一种多策略混合的算法来进行垃圾回收,将贪心策略和随机选择策略按一定比例混合使用:当满足特定的小概率条件时,垃圾回收器会试图随机选择一个可回收的页面;而在其他情况下,则使用贪心策略回收最“脏”的块。通过使用多策略混合的方法,YAFFS能够有效地改善贪心策略造成的不平均;通过不同的混合比例,则可以控制损耗平均和系统开销之间的平衡。考虑到NAND的擦除很快(和NOR相比可忽略不计),YAFFS将垃圾收集的检查放在写入新页面时进行,而不是采用JFFS那样的后台线程方式,从而简化了设计。
YAFFS的实现
开发环境简介
       本文采用的是宿主机+目标板的开发模式。宿主机为PC+REDHAT9.0,目标板为三星公司的S3C2410+嵌入式Linux,版本为2.6.11.12。NAND闪存是三星公司64MB的K9F5608U0C。YAFFS的源码可以从网站下载。
 &n
bsp;     YAFFS移植
1)在内核中建立YAFFS目录fs/yaffs,并把下载的YAFFS代码复制到该目录下面。
2)修改fs/Kconfig,使得可以配置YAFFS。
3)修改fs/makefile,添加如下内容:
obj-$(CONFIG_YAFFS_FS) += yaffs/
4)在生成的YAFFS目录中生成Makefile 和Kconfig文件。
Makefile 文件的内容为:
yaffs-objs := yaffs_fs.o yaffs_guts.o yaffs_mtdif.o yaffs_ecc.o
EXTRA_CFLAGS += $(YAFFS_CONFIGS) -DCONFIG_KERNEL_2_6
Kconfig文件中主要是配置一些宏,在MTD上面挂接YAFFS,以及一些辅助配置。配置如下:
config YAFFS_FS,N
config YAFFS_MTD_ ENABLED,Y
config YAFFS_RAM_ ENABLED,N
config YAFFS_USE_OLD_ MTD,N
config YAFFS_USE_ NANDECC,Y
config YAFFS_ECC_WRONG_ ORDER,N
config YAFFS_USE_ GENERIC_RW,Y
config YAFFS_USE_HEADER_ FILE_SIZE,N
config YAFFS_DISABLE_ CHUNK_ERASED_CHECK, Y
config YAFFS_DISABLE_ WRITE_VERIFY, N
config YAFFS_SHORT_ NAMES_IN_RAM, Y
5)修改NAND分区。此分区要结合vivi里的分区进行设置,如下:
struct mtd_partition smdk_default_nand_part[] = {
[0] = {.name   = "vivi",.size   = 0x00020000.offset = 0x00000000,},
[1] = {.name   = "param",.size   = 0x00010000,.offset = 0x00020000,},
[2] = {.name   = "kernel",.size   = 0x00100000,.offset = 0x00030000,},
[3] = {.name   = "root",.size   = 0x01900000,.offset = 0x00130000,},
[4] = {.name   = "user",.size   = 0x025d0000,.offset = 0x01a30000,}
};
6)配置内核时选中MTD支持和YAFFS支持。
7)编译内核并将内核下载到开发板的Flash中。
YAFFS文件系统测试
1)内核启动之后,启动信息中应该含有如下内容:
NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3.3V 8-bit)
Scanning device for bad blocks
Creating 5 MTD partitions on "NAND 64MiB 3,3V 8-bit":
0x00000000-0x000









































1】【2】【3
收藏此页】【  】【打印】【关闭

精彩专题

超值订阅2009年度DESIGN NEWS China杂志

DESIGN NEWS China杂志向国内读者介绍国际上最先进的工业技术与设计,涉及电子/测试、运动控制/自动化、创新材料、工程软件/硬件、汽车设计等领域,现在订阅可获更多优惠…[ 详细内容 ]

浏览该文章的用户还看过

  • 文章
  • 论坛
  • 博客
    暂时还无相关性文章