This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
你好
团队
我想测试我的软件的 ECC 功能
现在在我的代码中,是 startup.c。
SL_Init_ECCTCMRAM (10、true); /*启用 TCM RAM ECC */
我还在 HCG 中设置 ESM 接口,在 ESM 中设置为26 28
测试代码是
*(volatile UINT32 *)(0x08400000U)^ 0x03;
*(volatile UINT32 *)(0x08400000U)^ 0x01;
我的代码不在中断中,为什么??
我还写入 sl_tcram1REG->RAMCTRL=0x0005010AU
sl_tcram2REG->RAMCTRL=0x0005010AU
我还编写
sl_tcram1REG->RAMCTRL=0x0005010AU
sl_tcram2REG->RAMCTRL=0x0005010AU
…
我也尝试了
coredisableramecc_()
*(volatile UINT32 *)(0x08400000U)^0x03;
_coreenableeramecc_()
uint32 testvalue= *(volatile uint32 *)(0x08000000U)
…
没有中断被触发
黄先生、您好!
ESM 组1 通道的默认中断服务例程为 esmLowInterrupt(),请启用 VIM 通道20,以便 ESM 组1-26/28生成的中断可导出到 PCU。
如果 IRQ 未启用、请启用它。
你好
我已经设置了它,但我仍然无法进入并中断。
需要注意的其他事项
你好
我对 RAMCTRL 进行微调,我在软件 初始化中编写代码
sl_tcram1REG->RAMCTRL=0x0005010AU
sl_tcram2REG->RAMCTRL=0x0005010AU
但是,当代码在此代码中运行 时...
coredisableramecc_()
*(volatile UINT32 *)(0x08400000U)^0x03;
_coreenableeramecc_()
uint32 testvalue= *(volatile uint32 *)(0x08000000U)
寄存器值已更改
黄你好、
您的代码将强制出现双位 RAM ECC 错误。 ESM 3.3和3.5位被置位、并且生成数据中止。 未按预期产生中断。
要生成单位 RAM ECC 错误、请更改此指令:
*(volatile UINT32 *)(0x08400000U)^0x03;
更改为
*(volatile UINT32 *)(0x08400000U)^0x01;