nandflash oob解析 您所在的位置:网站首页 每页是什么意思 nandflash oob解析

nandflash oob解析

2024-05-28 17:15| 来源: 网络整理| 查看: 265

   1: 目前比较常见NAND Flash每一页大小为(2048+64)字节(还有其他格式的NANDFlash,比如每页大小为(256+8)、(512+16)、(2048+128)等),其中的2048字节就是一般存储数据的区域,64字节称为OOB(Out OfBand)区。通常在OOB区存放坏块标记、ECC较验码、文件系统信息(yaffs)等。 而cramfs、jffs2文件系统映像文件中并没有OOB区的内容,如果将它们烧入NORFlash中,则是简单的“平铺”关系;如果将它们烧入NAND Flash中,则NANDFlash的驱动程序首先根据OOB的标记略过坏块,然后将一页数据(2048字节)写入后,还会计算这2048字节的ECC较验码,最后将它写入OOB区,如此循环。cramfs、jffs2文件系统映像文件的大小通常是512的整数倍。 而yaffs文件系统映像文件的格式则跟它们不同,文件本身就包含了OOB区的数据(里面有坏块标记、ECC较验码、其他yaffs相关的信息)。所以烧写时,不需要再计算ECC值,首先检查是否坏块(是则跳过),然后写入2048字节的数据,最后写入64字节的OOB数据,如此循环。yaffs文件系统映像文件的大小是(2048+64)的整数倍

  2:  1)烧写yaffs文件系统映像时,分区上第一个可用的(不是坏块)块也要跳过。2)如果写入的数据是oxff,代表不写入数据

  3:  yaffs文件系统格式详细见https://yaffs.net/yaffs-2-specification

Comment

Size for 1kb chunks

Size for 2kB chunks

blockState

Block state. non-0xFF for bad block

1 byte

1 byte

chunkId

32-bit chunk Id

4 bytes

4 bytes

objectId

32-bit object Id

4 bytes

4 bytes

 

nBytes

Number of data bytes in this chunk

2 bytes

2 bytes

blockSequence

sequence number for this block

4 bytes

4 bytes

tagsEcc

ECC on tags area

3 bytes

3 bytes

ecc

ECC, 3 bytes/256 bytes of data

12 bytes

24 bytes

Total

 

30 bytes

42 bytes

 

 

4: 如果使用8位HWECC时,会生成52字节的ECC校验数据并写入oob,而yaffs2自身也有28字节的数据写日oob,也就是说,至少需要28+52=80字节的oob空间,而对于我们的nand flash,页大小为2048字节,oob空间为64字节,明显空间不足,进而导致了我们前面看到的问题,所以,采用8位HWECC时应该选用不使用oob空间的文件系统,如jffs2,但是jffs2文件系统在挂载时比较慢,感觉上不如yaffs2轻巧。

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有