文字概述比较繁琐,请仔细阅读。芯片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块好块的有效数据抛弃,这是不符合实际应用逻辑的。
希望下图可以帮助你理解我的意思
假设配置为STBLK:0/ENDBLK:9/CNTBLK:7,那么T56只读取0-6这前7块内容 舍弃后3块,假设在实际应用中 中间三块为坏块,那么读取的数据就是不全面的,这是逻辑缺陷。应该改为读取时遇坏块就跳,直至在分区范围内读满7(有效块数)块为止
如果这个逻辑缺陷不修正,那么分区模式读出数据 将无法使用
经测试:使用中读取时勾选【跳过坏块】可读取有效数据。 |