来自yaffs2源(yaffs_ecc.c):
“ECC可以更正256字节数据页中的单位错误。”
但有些闪存需要ECC代码,例如,每540字节必须纠正8位,或每528字节必须纠正4位,等等。
YAFFS的ECC算法能纠正1个以上的错误吗请给我有关ECC算法实现的链接,它可以纠正1个以上的错误,工作最快。

最佳答案

yaffs是基于nand的文件系统。文件系统是基于nand flash的体系结构设计的。
yaffs的ecc算法能纠正1个以上的错误吗?
不,它不能纠正超过1位的错误。
根据每个页面的nand架构,维护一个ECC,它可以处理最多1位的错误如果ECC显示超过2位的错误,则其不可纠正的错误和页面被标记为坏块。
即使尝试在yaffs中实现ecc算法,闪存也无法处理错误更正。闪存中将保留备用区域以存储ECC位,存储此数据的字节数有限。
为了修改文件系统,您可以查看您正在尝试实现的flash的数据表。而且大多数flash都有内部ecc生成控制器,即硬件控制器。
每540字节能纠正8位吗?
对于flash来说,实现这样的算法太复杂了。
下面是一些用于闪存的ECC算法
汉明算法
里德所罗门算法
Bose-Chaudhuri-Hocquenghem(BCH)算法
使用bch算法有可能纠正更多的错误
算法主要在硬件控制器中实现

关于c - YAFFS文件系统是否支持每256字节页面1位以上的ECC?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32845891/

10-11 18:40