经过实验,STM32的硬件ECC值的排列:
b0~b5是CP0~CP5
b6~b21是RP0~RP15
yaffs和uffs文件系统的ECC排列为:
b0~b15是RP0~RP15
b18~b23是CP0~CP5
b16,b17为1
STM32计算的ECC值除了排列不一样外,还需要对其ECC值按位取反,之后才可以用于文件系统的ECC效验算法进行效验.
在读取FSMC_Bankx->ECCRx之前,需要有一定的延时,否则读不对数据.可使用Delay(50);
ECC的值不能用于数据正确与否的判据,所以需要结合其他数据完整性算法使用. |