我尝试对Flash ECC机制做一个启动测试,使用的是FDFD。
而且,当我注入错误时,FERSTAT 已设置但没有硬故障结果。
我的代码是这样的:
/* 启用 Flash 双位故障检测中断 */
FTFC->FERCNFG = FTFC_FERCNFG_DFDIE(1);
/* 强制双位故障检测 */
FTFC->FERCNFG |= FTFC_FERCNFG_FDFD(1);
/* 写后读 */
(void)FTFC->FERCNFG;
/* 从任何闪存单元加载一个数字值。*/
FusaStartup_ECCTstVar = 0x88888888;
/*================================================ ====================
对于S32K11x,不可纠正的ECC错误会直接导致hand fault。
因此,如果功能良好,将永远不会达到以下几行
==================================== ==================================*/
/* 清除双位故障的强制 */
FTFC->FERCNFG &= ~FTFC_FERCNFG_FDFD_MASK;
FTFC->FERSTAT = FTFC_FERSTAT_DFDIF(1);
你能看看吗?谢谢!