原创 NandFlash(SAMSUNG)应用

2008-1-16 23:49 3474 6 6 分类: MCU/ 嵌入式
K9K8G08U1M
   512Mx8Bits
   Package Type: 48-Pin TSOP1

1166871471861.jpg



  这是典型的NAND flash,由block组成,每一个block包含64个Pages,而一个page是2k+64=2048+64=2112字节。对于一个page,0~2047个字节用来存储数据,2048~2111,共64个字节,Spare Area,用来存储page中每个sector的信息,其中第一个16字节用于描述第一个512个字节,第二个16字节用于描述第二个512个字节,以此类推,共64个字节,用于描述前面的2048个字节。这每一个16字节,在little-endian的CPU上可以用下面的结构体表示。
  typedef struct {
   BYTE badBlock;
   BYTE oemReserved;
   WORD reserved2;
   DWORD reserved1;
   BYTE ecc[3];
   BYTE unused[5];
  } LB_SPARE_AREA;
  oemReserved是OEM自定义的字段
  ecc用于验证512个字节
  badBlock是用来描述block的,在下一节会有详细的说明

1166871479814.jpg



  Invalid Block的判别标准
  typedef struct {
   BYTE badBlock;
   BYTE oemReserved;
   WORD reserved2;
   DWORD reserved1;
   BYTE ecc[3];
   BYTE unused[5];
  } LB_SPARE_AREA;
  Invalid Block,就是我们常说的坏块。SAMSUNG规定在block的第一和第二个page的Spare Area的第一个字节,对于非0xFF的,就判定该block为Invalid Block。也就是上面结构体中的badBlock,如果不等于0xFF,就说明是坏块。反之,对于一般的block,badBlock==0xFF。

文章评论0条评论)

登录后参与讨论
我要评论
0
6
关闭 站长推荐上一条 /2 下一条