您好,
我们的代码正在生成 ECC nERROR 引脚已置为有效(板载红色 LED 亮起)、且 MCU 拒绝启动。 现在由于项目很复杂,我们不能确定错误是由于 RAM ECC 还是代码的闪存 ECC 部分正在从 RAM 中执行。
我们能否在 TMS570LS3137中禁用 RAM ECC 但启用闪存 ECC
是否存在特定的 ECC 错误 SFR,我们可以在其中检查 ECC 错误的来源(闪存或 RAM)
以下是为 RAM 和闪存启用 ECC 的代码
SYS_STARTUP.c
/*启用 CPU 事件导出*/
/*这允许 CPU 发出检测到的任何单位或双位错误的信号
*通过其 ECC 逻辑访问程序闪存或数据 RAM。
*
_coreEnableEventBusExport_
MRC P15、#0x00、r0、C9、C12、 0x00
ORR r0、r0、#0x10
MCR P15、#0x00、r0、C9、C12、 0x00
BX LR
/*为闪存访问启用 CPU 指示的 ECC 错误响应*/
flashWREG->FEDACCTRL1 = 0x000A060AU;
/*为 ATCM (闪存访问)启用 CPU ECC 检查*/
_coreEnableFlashEcc_
MRC P15、#0x00、r0、c1、c0、 0x01
ORR r0、r0、#0x02000000
DMB
MCR P15、#0x00、r0、c1、c0、 0x01
BX LR