Board logo

标题: 发现NAND多分区模式下设计缺陷一处 [打印本页]

作者: q519948746    时间: 2021-6-9 10:01     标题: 发现NAND多分区模式下设计缺陷一处

文字概述比较繁琐,请仔细阅读。芯片NW874,块大小128+8,共2048块
读取模式:多文件 多分区
通过测试发现T56多分区下读数据只读取有效块大小的数据尺寸,并且这个数据为该分区内前一部分数据。请仔细看以下实验结果
假设设定的分区
STBLK:0/ENDBLK:1/CNTBLK:1
表示该分区共两块,其中1块为有效块,通过测试发现,这样读取出来的文件共136KB 符合128+8大小,这136KB数据为第0块内容,t56舍弃了后一块内容,但是t56是并没有判断block0是不是坏块,就直接读取了0块而舍弃了1块。我通过编辑了一段256+16KB的文件 将前128+8使用00填充,冒充坏块进行测试,发现t56使用坏块检查时可以发现block0为坏块,但是分区读取时依然是读前128+8的内容 就是136KB的00数据,而将后1块好块的有效数据抛弃,这是不符合实际应用逻辑的。
希望下图可以帮助你理解我的意思
0001.png
2021-6-9 09:58



假设配置为STBLK:0/ENDBLK:9/CNTBLK:7,那么T56只读取0-6这前7块内容 舍弃后3块,假设在实际应用中 中间三块为坏块,那么读取的数据就是不全面的,这是逻辑缺陷。应该改为读取时遇坏块就跳,直至在分区范围内读满7(有效块数)块为止

如果这个逻辑缺陷不修正,那么分区模式读出数据 将无法使用

经测试:使用中读取时勾选【跳过坏块】可读取有效数据。


图片附件: 0001.png (2021-6-9 09:58, 35.73 KB) / 下载次数 9622
http://forums.xgecu.com/attachment.php?aid=686&k=b965e94036141218b5432d9c98706700&t=1711716833&sid=DgtAF0


作者: admin    时间: 2021-6-9 10:48

回复 1# q519948746

这个问题,应该是你读取时没有勾选【跳过坏块】选项
实际使用中推荐使用【硬拷贝】【单个文件,全部数据】进行文件读取。
这个硬拷贝文件可以用使用分区写功能,只需在文件选项中勾选【文件中包含无效块】,并在坏块管理中勾选【跳过坏块】。
同时这个文件也能使用硬拷贝,全部数据进行复制




欢迎光临 XGecu Programmer Forums (http://forums.xgecu.com/) Powered by Discuz! 7.2