摘要:
底层如何定位到oob的起始位置?中间有个细节,本来很简单清楚的,差点把自己搞晕了,那就是:对于写oob,到底底层是怎么传入参数使得定位到一个页的oob的起始位置的,然后再开始写oob数据的。结果就是,再nand_write_oob_std()中,发命令的时候,送的就是定位的起始地址:chip->cmdfunc(mtd, NAND_CMD_SEQIN, mtd->writesize, page);其中,mtd->writesize就是页内地址,此处就是一个页大小,比如2K,页结束地址=oob开始的位置,就可以定位到oob起始处了,后面就可以写oob数据了:chip->wr 阅读全文
摘要:
NAND FLASH ECC校验原理与实现2008-01-25 14:57:27转自:http://blog.csdn.net/nhczp/archive/2007/07/20/1700031.aspxECC简介 由于NANDFlash的工艺不能保证NAND的MemoryArray在其生命周期中保持性能的可靠,因此,在NAND的生产中及使用过程中会产生坏块。为了检测数据的可靠性,在应用NANDFlash的系统中一般都会采用一定的坏区管理策略,而管理坏区的前提是能比较可靠的进行坏区检测。 如果操作时序和电路稳定性不存在问题的话,NANDFlash出错的时候一般不会造成整个Block或是Pa... 阅读全文
摘要:
NAND Flash ECC算法长度计算收藏NAND Flash中常用的纠错方式 因为闪存中会有出错的可能,如果没有使用ECC模块,读出的数据和写入的数据会有不匹配的可能,也许一个文件中只有一两个bit不匹配,这也是不能容忍 的。相对来说SLC中出错概率比较低,所以使用一个纠错能力不强的Hanming码就可以了,在MLC中Hanming码就显得力不从心了,需要纠错能力 更强的RS或者BCH纠错方式了。 BCH擅长处理随机错误,由于NAND Flash自身的特点,出现随机错误的概率更大一些,所以在MLC中目前应用最多的还是BCH方式。 ECC校验都需要在增加一些额外的空间来存放ECC效验码。所以 阅读全文