如何将YAFFS文件系统镜像烧入Nand Flash

本文介绍了如何将专为Nand Flash设计的YAFFS文件系统镜像正确烧入Flash。内容涉及YAFFS镜像的结构,包括Data、TAG、Status和ECC,以及在烧录过程中需要注意的步骤,如预留第一个块用于Yaffs_ObjectHeader,跳过坏块,正确写入扩展区等。
摘要由CSDN通过智能技术生成

和普通文件系统不同,YAFFS文件系统专门为Nand Flash设计,可以使用mkyaffsimage生成文件系统的镜像,但如果要将此镜像烧入Flash,那么有些地方需要注意。

 

硬件上,Nand Flash的设计已考虑到包含坏块的情况,对于每扇区512字节的Nand Flash,每扇区都有一个16字节额外的扩展区,通常用以存储此扇区的校验数据以及坏块标记等信息(WinCE则使用了其中4字节存储逻辑扇区编号),所以我们看Nand Flash的Data Sheet时,经常会发现其容量以“64M + 2048K”这样的格式进行描述,后面的数字就用来表示扩展区的容量。

 

YAFFS文件系统既然专为Nand Flash设计,它在生成文件系统镜像时,已经考虑到对扩展区的利用,并将扩展区的数据包含在扇区数据后,其结构定义如下:

 

bytes 0-511: Data

 

bytes 512-515: YAFFS TAG

bytes 516: Data status

bytes 517: Block status

bytes 518-519: YAFFS TAG

bytes 520-522: ECC for bytes 256-511

bytes 523-524: YAFFS TAG

bytes 525-527: ECC for bytes 0-255

 

可以看出,YAFFS使用了8字节(YAFFS TAG)存储文件系统相关信息,并使用4字节(ECC)存储校验数据,而此校验数据算法与Nand Flash控制器的硬件算法并不一致,对于很多Boot Loader,可能会校验失败。

 

另外&#

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值