这两天在看关于NandFlash的编程,在CSDN上看到了赵春江老师写了这款芯片的操作(原文博客地址:http://blog.csdn.net/zhaocj/archive/2010/08/07/5795254.aspx),觉得写的很好,在这里向赵老师表示感谢。正好我的也是这款芯片,就准备借用过来,但是却出现了一些问题,总结如下:
(1)发现有坏块,却没有办法实现坏块的标注。如果发现第582块为坏块,可以完成对第582块的第2054个字节写为0x33,但是从这个字节读出来的却是0。这似乎说明没有办法实现对坏块的标注,标注函数似乎可以去掉。
(2)当对一个块进行擦除后,如果是坏块,那么这块的第一页的数据全是0,如果是好块,那么这块的第一页的数据全是0xff。这似乎说明坏块没有办法擦除,因为擦除就是让所有位变为高。
(3)当对一个好块进行写,并将ECC数据依次放入2048-2053字节,可以发现这几个字节处依次是0xff,0xff,0xff,0xf0,0xff,0xfc。但是如果写的是坏块,这几个字节处得内容却全为0。这似乎说明我们不需要对坏块进行标注,只需要根据第2048个字节处是不是0xff就能判断该块是不是坏块。
以上理解不知道对不,请各位高手拍砖。