谁能给提供一个nand flash的ECC校验代码?

[复制链接]
4876|5
 楼主| lzh08 发表于 2009-7-16 11:19 | 显示全部楼层 |阅读模式
香水城 发表于 2009-7-16 13:13 | 显示全部楼层

STM32的固件库中有例子

 楼主| lzh08 发表于 2009-7-16 15:43 | 显示全部楼层

那个例子没有坏块检测和ECC校验

我没有看到
香水城 发表于 2009-7-17 01:47 | 显示全部楼层

例子中有ECC校验

  FSMC_NANDInitStructure.FSMC_Bank = FSMC_Bank2_NAND;
  FSMC_NANDInitStructure.FSMC_Waitfeature = FSMC_Waitfeature_Enable;
  FSMC_NANDInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_8b;
  FSMC_NANDInitStructure.FSMC_ECC = FSMC_ECC_Enable;   使能ECC校验
  FSMC_NANDInitStructure.FSMC_ECCPageSize = FSMC_ECCPageSize_512Bytes;
  FSMC_NANDInitStructure.FSMC_TCLRSetupTime = 0x00;
  FSMC_NANDInitStructure.FSMC_TARSetupTime = 0x00;
  FSMC_NANDInitStructure.FSMC_CommonSpaceTimingStruct = &p;
  FSMC_NANDInitStructure.FSMC_AttributeSpaceTimingStruct = &p;

  FSMC_NANDInit(&FSMC_NANDInitStructure);

  /* FSMC NAND Bank Cmd Test */
  FSMC_NANDCmd(FSMC_Bank2_NAND, ENABLE);
 楼主| lzh08 发表于 2009-7-17 10:11 | 显示全部楼层

是有这个“使能ECC”,但是如何使用呢?

比如说我想要在pageprogram之前检测ECC,通过什么方式取得ECC状态呢?是通过u32 FSMC_GetECC(u32 FSMC_Bank);这个函数么?通过他的返回值判断block的好坏么?还是通过其他的什么方式?
能给提供一个坏块检测的代码和ecc检测的代码参考么?
谢谢。
香水城 发表于 2009-7-17 11:58 | 显示全部楼层

你看看例子应该能够明白

ECC的计算是在写NAND Flash读写的同时完成的,在读或写一个Block的数据后,就可以得到ECC的数值。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

57

主题

114

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部