MLC nand flash由于物理特性易出错,所以要更有效的多位数据的检错和纠错。对于MLC nand flash,常见的ECC算法是BCH。关于BCH算法的源代码,除了这个网站提供的是2bit纠错的:
中的:BCH codes ,Binary (48,36,5) BCH code. ,Binary (31,21,5) BCH code.
其他的,常用到的4bit纠错的BCH代码,一直都很难找到。
不过刚刚找到一个,所以在此贴出来。
下载地址是:
http://d.download.csdn.net/down/1169061/jeromechen2008
另外这个地址:
http://d.download.csdn.net/down/1148929/liangkaiyang
中的东西,其实和上面那个一样的,只不过里面多了个三星的那个mlc flash的datasheet而已。
关于此BCH算法,简单说明一下,这套BCH代码,是Micron,镁光(or 美光)公司实现的。
具体要能达到实用的地步,一般要做成encode和decode两个函数,要自己基于此源码,适当修改成需要的对应的函数,具体我也不太懂,但是人家已经实现了代码,相比改起来,应该不会太难的。有需要的,自己动手吧。