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

TCRAM模块

您好:

我想请问一下RM48中TCRAM模块中的Single-Bit Error是如何发生的?是自己对寄存器的赋值还是运行某函数时自动产生?

请明白的人尽快帮忙解答一下,谢谢了!!

Jay:

Hi yiwei,

Single-Bit Error是一种RAM的异常情况,TCRAM及ECC就是用来检测和纠正这种异常的。

Regards,

Jay

Jay:

回复 yiwei:

Hi yiwei,

tcram1REG->RAMCTRL = 0x0005010AU;   

这一句主要是把RAMCTRL的第8位ECC WR EN给使能了,这样就可以通过人为的改写ECC值来制造ECC的错误。

由于错误是人为制造的,所以位数可以控制,请看例程。

tcramA1bitError ^= 0x1U;

这一句中把ECC的最后一位翻转了,制造了一位ECC错误。

tcramA2bitError ^= 0x3U;      

这一句把ECC的最后两位都翻转了,制造了两位ECC错误。

Regards,

Jay

yiwei:

回复 Jay:

Hi Jay,

您说的我明白了,那产生两位ECC错误后,ramread = tcramA2bit;即可,为什么上面还要添加ramread = tcram1REG->RAMCTRL;和ramread = tcram2REG->RAMCTRL;这两段代码呢?

yiwei:

回复 Jay:

谢谢您的回复,我用的是03.05版本,产生的代码就包含了那两行,并且没有ramread = tcramA2bit;这一行代码,我自己添加进去了。

ron chow:

回复 Jay:

hi,TI专家,

    通过cramA1bitError ^= 0x1U; 这一句中把ECC的最后一位翻转了,制造了一位ECC错误。 这样数据和ECC值就一致了,此时当读取数据时会纠正错误吗?

Yichao Jiang:

回复 Jay:

你好,ECC是只要使能就可以吗,需要nowECC和nowFlash配合吗,如果需要,该怎么使用呢?谢谢

赞(0)
未经允许不得转载:TI中文支持网 » TCRAM模块
分享到: 更多 (0)