TI中文支持网
TI专业的中文技术问题搜集分享网站

SafeTI诊断库 TCM RAM ECC问题

您好,运行SafeTI诊断库时,程序到下面两部分语句时

1、/* Run 2Bit ECC test on TCM RAM */
     retVal = SL_SelfTest_SRAM(SRAM_ECC_ERROR_FORCING_2BIT, TRUE, &failInfoTCMRAM);
     INCREMENT_PASS_FAIL_COUNTER(failInfoTCMRAM, retVal);

2、/* Run RAD Self tests on TCMRAM */
        retVal = SL_SelfTest_SRAM(SRAM_RADECODE_DIAGNOSTICS, TRUE, &failInfoTCMRAM);;
        INCREMENT_PASS_FAIL_COUNTER(failInfoTCMRAM, retVal);

会跳转到

#pragma INTERRUPT ( _excpt_vec_abort_pref, PABT)
void _excpt_vec_abort_pref()
{
 while(1);
}

然后就在这一直循环,请问是什么原因?

Ken Wang:

Hi wei,

 看程序,这是一个正常的操作。因为那两个语句是系统强制性检测RAM有两个比特位的错误发生时,系统会怎么办。

我们的MCU是支持单比特位自动校正,双比特位报错的机制。因为这是RAM的检测,在ESM模块里面应该有定义这个错误产生的话,直接触发中断。

所以我们的程序才会跳到中断程序里面,这里只用while(1)的语句的意思是,我们希望用户自己定义这个中断函数。所以系统才会一直在这里循环。

 

 

谢谢

ken

wei wang13:

回复 Ken Wang:

谢谢您的回复,请问程序是怎么产生这个错误的呢,是什么原因导致的呢?我想知道运行这2种RAM检测发生错误的原因。

Ken Wang:

回复 wei wang13:

这是芯片内部自带的校验机制,即通过配置寄存器,强制产生一个2bit 错误的信号给ECC的校验模块,用来测试它的工作正不正常。

相关的配置和寄存器可以在我们的TRM手册上面找到。

谢谢,

ken

wei wang13:

回复 Ken Wang:

我是想说这是我的什么原因造成的?是RAM的操作不当,还是什么别的原因?

Ken Wang:

回复 wei wang13:

这是我们safety library针对芯片内部模拟校验RAM ECC功能的一项操作,和你对RAM的操作无关,不是你操作不当。如果你不想系统一直处于while(1)无限循环的话,你可以不让MCU自动产生有2bit出错的信号。

谢谢

ken

wei wang13:

回复 Ken Wang:

您好,又打扰您了!我可能没把问题说清楚,我知道MCU有这个校验机制,我是想知道是什么错误触发了这个机制,为什么我的程序每次跑到这个RAM ECC校验时就会出错?正常运行的话应该没有这个现象的,即使校验也是应该可以通过的,不会跳到_excpt_vec_abort_pref这个中断里。

ron chow:

回复 wei wang13:

我也遇到了,就是插入2bit错误系统会进入异常,这项检验是通不过的。

赞(0)
未经允许不得转载:TI中文支持网 » SafeTI诊断库 TCM RAM ECC问题
分享到: 更多 (0)