nandflash坏块检测问题

lan120576664 2011-04-10 05:01:57
大家好,小弟我目前在学习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
...全文
423 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lan120576664 2011-04-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xghbd 的回复:]
NANDflash 在出厂检测时发现坏块会将标志改为非ff。
但是这些标志有些是可以被擦除的。
如果对这些块擦除操作后,建议通过写-读操作进行判断,并重新置标志。
[/Quote]
我也是这样做的
xghbd 2011-04-18
  • 打赏
  • 举报
回复
NANDflash 在出厂检测时发现坏块会将标志改为非ff。
但是这些标志有些是可以被擦除的。
如果对这些块擦除操作后,建议通过写-读操作进行判断,并重新置标志。
lan120576664 2011-04-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 chinaye1 的回复:]

非0xff 不一定就是有坏块的意思
[/Quote]
那是什么意思,flash的datasheet是这样说的啊。
出厂时非0xff就表示有坏块,该块有坏块。
chinaye1 2011-04-11
  • 打赏
  • 举报
回复
非0xff 不一定就是有坏块的意思

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧