nandflash坏块检测问题
大家好,小弟我目前在学习nandflash这部分的相关驱动代码,用的是jlink进行裸奔。
目前小弟有个疑问,就是在对nandflash进行坏块检测时候,
是不是执行过友善之臂提供的擦除flash代码,就不能用三星检测坏块的方法(即,检测Spare区的517地址是否为"0xFF"。)去检测坏块情况了?
或是我写的代码是否有问题(小弟用的nandflash型号:K9F1208U0C)
麻烦高手帮手看看,谢谢。
void InitialBadBlock_Check(int blockNum)
{
BYTE buf=0x00;
int iBlockAdd=blockNum*32; //32PAGE 每 Block
NandRest();
NF_ENChip();
NF_ClearNFRnB();
NF_WriteCMD(NFCMD_READSPARE);//50h
NF_WriteADD(5);
NF_WriteADD(iBlockAdd&0xff);
NF_WriteADD((iBlockAdd>>8)&0xff);
NF_WriteADD((iBlockAdd>>16)&0xff);
NF_WaitNFDetect();
buf=NF_ReadData8();
NF_DISChip();
myprintf("Block SpareArea Value at addr517 is 0x%02X!\r\n",buf);
if(buf!=0xFF)
myprintf("Block%d is a bad block.\r\n",blockNum);
else
myprintf("Block%d is a good block.\r\n",blockNum);
}
我这段代码打印出来0~99块的517地址都是非0xff