1 bock = xxx Page
1 page = 2048字节 + 64字节备用区
[C] 纯文本查看 复制代码 /*
【NAND Flash 结构定义】
备用区有16x4字节,每page 2048字节,每512字节一个扇区,每个扇区对应16自己的备用区:
每个PAGE的逻辑结构,前面512Bx4是主数据区,后面16Bx4是备用区
┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐┌──────┐
│ Main area ││ Main area ││ Main area ││Main area ││ Spare area ││ Spare area ││ Spare area ││Spare area │
│ ││ ││ ││ ││ ││ ││ ││ │
│ 512B ││ 512B ││ 512B ││ 512B ││ 16B ││ 16B ││ 16B ││ 16B │
└──────┘└──────┘└──────┘└──────┘└──────┘└──────┘└──────┘└──────┘
每16B的备用区的逻辑结构如下:(FlashFS中的配置)
┌───┐┌───┐┌───┐┌───┐┌──┐┌───┐┌───┐┌───┐┌──┐┌──┐┌──┐┌──┐┌───┐┌───┐┌───┐┌───┐
│LSN0 ││LSN1 ││LSN2 ││LSN3 ││COR ││BBM ││ECC0 ││ECC1 ││ECC2││ECC3││ECC4││ECC5││ ECC6││ ECC7││ ECC8 ││ ECC9 │
│ ││ ││ ││ ││ ││ ││ ││ ││ ││ ││ ││ ││ ││ ││ ││ │
└───┘└───┘└───┘└───┘└──┘└───┘└───┘└───┘└──┘└──┘└──┘└──┘└───┘└───┘└───┘└───┘
- LSN0 ~ LSN3 : 逻辑扇区号(logical sector number) 。
- COR : 数据损坏标记(data corrupted marker)。
- BBM : 坏块标志(Bad Block Marker)。
- ECC0 ~ ECC9 : 512B主数据区的ECC校验。
K9F1G08U0A 和 HY27UF081G2A 是兼容的。芯片出厂时,厂商保证芯片的第1个块是好块。如果是坏块,则在该块的第1个PAGE的第1个字节
或者第2个PAGE(当第1个PAGE坏了无法标记为0xFF时)的第1个字节写入非0xFF值。坏块标记值是随机的,软件直接判断是否等于0xFF即可。
注意:网上有些资料说NAND Flash厂商的默认做法是将坏块标记定在第1个PAGE的第6个字节处。这个说法是错误。坏块标记在第6个字节仅针对部分小扇区(512字节)的NAND Flash
并不是所有的NAND Flash都是这个标准。大家在更换NAND Flash时,请仔细阅读芯片的数据手册。
*/
|