主题 : nandflash坏块检测问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 12556
精华: 0
发帖: 7
金钱: 40 两
威望: 8 点
综合积分: 14 分
注册时间: 2010-01-09
最后登录: 2017-09-13
楼主  发表于: 2011-04-10 17:00

 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
级别: 新手上路
UID: 66049
精华: 0
发帖: 3
金钱: 15 两
威望: 3 点
综合积分: 6 分
注册时间: 2012-03-25
最后登录: 2012-03-28
1楼  发表于: 2012-03-25 22:31
我的也是。不知道为何??你解决了吗?