移植YAFFS文件系统
仇洁婷,陈儒军
YAFFS是适用于NAND Flash存储器设计的嵌入式文件系统。YAFFS文件为NANDFlash提供了一种可靠的操作系统,并且特别适合用于对能耗要求比较高的嵌入式系统。
在YAFFS中,以固定大小的数据块存储文件,块的大小可以是512字节、1024字节或者2048字节。每个文件(包括目录)都有一个数据块头与之相对应,数据块头中保存了ECC(Error Correction Code)和文件系统的组织信息,用于错误检测和坏块处理。
(1)在内核中加入yaffs2代码。
根据 patch-ker.sh脚本文件来给内核打补丁:
$ cd yaffs2
$ sh patch-ker.sh c ../linux-2.6.21
修改内核fs/Kconfig,增加如下代码:
Source “fs/yaffs2/Kconfig”
修改内核fs/Makefile文件,增加生成yaffs2目标文件代码。
Obj-$(CONFIG_YAFFS_FS) +=yaffs2/
(2)配置Linux内核。
在Filesystems >Miscellaneous filesystems >目录下,选上对YAFFS的支持。
Filesystems >
Miscellaneous filesystems >
<*> YAFFS2 file system support
<*> 512 byte / page devices
<*> Lets Yaffs do its own ECC
<*> 2048 byte (or larger) / page devices
<*> Autoselect yaffs2 format
<*> Disable lazy loading
<*> Turn off wide tnodes
<*> Turn off debug chunk erase check
本系统选用YAFFS中的ECC校验,因此要把MTD NAND 驱动中的ECC 校验关闭。在drivers/mtd/nand/at91_nand.c的初始化函数中设置this-eccmode = NAND_ECC_NONE。
https://blog.sciencenet.cn/blog-39626-332575.html
上一篇:
修改NAND Flash分区下一篇:
制作uImage镜像