NAND Flash的坏块管理设计
②写过程中发生错误,则该块成为坏块。处理方法为:为其分配一个新的有效块,将坏块原有数据拷贝到有效块,并同时写入新的数据,最后更新映射表,标识坏块。写操作的错误处理算法如图5所示。本文引用地址://m.amcfsurvey.com/article/151348.htm
③擦除过程发生错误,则该块成为坏块。处理方法为:为其分配一个新的有效块,并擦除此有效块,更新映射表,标识坏块。
2.3 BootIoader的坏块管理
在Bootloader层采用Linux内核相同的坏块管理策略,并复用相关代码。Bootloader在内存建立起的坏块映射表可以通过内存共享的方式,传递给Linux内核,从而减少内核重新扫描坏块映射表的时间,加快系统启动速度。
3 测试
Cases测试方法:对一切可能情况实行模拟测试,最后进行压力测试。
3.1 坏块场景模拟测试
①出厂坏块;
②运行中产生坏块:读操作产生坏块,写操作产生坏块,擦操作产生坏块,比特反转产生伪坏块。
3.2 坏块表一致性场景模拟
①2张相同Vn+1;
②1张Vn+1和2张相同Vn;
③1张Vn+1和1张Vn;
④1张Vn;
⑤没有任何坏块表;
⑥2张不相同的Vn+1。
3.3 压力测试
系统不间断运行10天后,工作状态仍然正常。
3.4 文件系统测试
系统能够支持对坏块敏感的文件系统squashfs、cramfs,其测试案例均通过。这表明该坏块管理方法能有效管理NANDFlash。
4 总结
本文提出了一种基于嵌入式Linux整套系统的NANDFlash坏块管理实现方案,并详细介绍其坏块映射算法。此方案目前已经应用到数字电视开发平台。在系统平台上的相关坏块动态产生、突然掉电等大量测试表明此方案稳定可靠。
评论