在U-Boot中实现对Yaffs镜像的支持
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在U-Boot中实现对Yaffs镜像的支持
0 引言U-Boot是目前广泛使用的嵌入式操作系统通用引导程序,具有功能丰富强大,支持多种操作系统和CPU体系,易于功能扩展和移植,源码开放等多种优点。
U-Boot能够同时支持启动加载模式和下载模式。
在下载模式下,可以通过U-Boot自带的nand read/write等命令,配合.Jffs 2等参数,实现cramfs,Jffs 2等文件系统镜像的读写,方便开发过程的调试。
Yaffs文件系统是专门针对NAND FLASH设计的可读写型文件系统,在NAND FLASH上性能稳定优异。
U-Boot自身没有实现对Yaffs文件系统镜像读写的直接支持。
由
于Yaffs文件系统的特殊结构,需要对nand命令做一定的修改,从而实现其在NANDFLASH上对Yaffs镜像的读写。
1 相关工作简介1.1 Yaffs文件系统结构简述目前,嵌入式系统中常用的FLASH文件系统有Cramfs,Jffs 2,Yaffs,exfat等。
Cramfs是一种压缩型只读型文件系统,其在系统启动时解压至内存中运行。
Jffs 2,Yaffs,Exfat等是可读写型文件系统,Jffs 2一般应用于NOR型FLASH;Exfat不是开源的文件系统实现,一般应用于Windows CE操作系统中。
Yaffs是一种专门针对NAND FLASH设计的可读写型文件系统,它能针对嵌入式存储器的功能要求提供损耗平衡、掉电保护等。
Yaffs文件系统的源代码开放,在多种嵌入式操
作系统中移植十分方便。
通常一个NAND FLASH存储设备由若干块组成;1个块由若干页组成。
一般128 MB以下容量的NAND FLASH芯片,一页大小为528 B,依次分为2个256 B的主数据区和16 B的额外空间;128 MB以上容量的NAND FLASH芯片,一页大小通常为2 KB。
由于NAND FLASH出现位反转的概率较大,一般在读写时需要使用ECC进行错误检验和恢复。
Yaffs 文件系统的设计充分考虑到NAND FLASH以页为存取单位等的特点,将文件。