引用 3 楼 trueman_onlyme 的回复:
"CPU会自动比较并算出一位错误位(SLC)或者4位(MLC"
? ? ? ? ? ? ---------看CPU的相关寄存,应该是这样子的
? 那么当读的时候,新的ECC code(放在NFMECC0/1里面的)要与 原来的ECC code 继续对比,这个原来的ECC code? 应该是从spare area 里面读出来的。
问题是,在读的时候,cpu怎么知道原来的ecc code里面的指定位置?
读的位置要和之前写的位置一样,如果读写FLASH用到的是同一个BSP,然用这个EBOOT烧进去当然没问题,因为它们使用相同的格式,
但是如果你想通过ADS等其它方式把数据先写到FLASH中去,EBOOT等过程去读,这就要求你在写的时候必须分析你的BSP代码,看它是如何标记spare区,你一定要按照它的格式去做,否则就会出ECC校验出错。