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.

[参考译文] TMS570LC4357-EP:关于'不可纠正的错误类型 B'以及 L2RAMW 的诊断测试程序

Guru**** 2481465 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1051538/tms570lc4357-ep-regarding-uncorrectable-error-type-b-and-diagnostic-test-procedure-of-l2ramw

器件型号:TMS570LC4357-EP

您好!

这是有关 L2RAMW 的"不可纠正的错误类型 B"和诊断测试程序的问题。
我们现在在评估板上测试 TMS570 MCU 的 ESM 功能。

RAMERRSTATUS 的 DRDE (22)、DRSE (21)、DWDE (20)和 DWSE (19)可以使用以下测试代码验证操作。


易失性 uint64 sramEccTestBuff[2]={0x0u};
易失性 uint64* eccb1;
易失性 uint32* buffPtr;
l2ramwREG->RAMCTRL |=(1U <<20)|/* MSE */
(1U <<12)|/* EEMMS */
(1U <<4);/* CPUWSC */
buffPtr =&sramEccTestBuff[0];
eccb1 =&sramEccTestBuff[0];
eccb1 = eccb1 +(0x00400000U / sizeof (uint64));
l2ramwREG->RAMERRSTATUS = 0x00781C10;
l2ramwREG->DIAGDATAVECTOR_H =*缓冲 Ptr;
buffPtr ++;
l2ramwREG->DIAGDATAVECTOR_L =*缓冲 Ptr;
l2ramwREG->DIAG_ECC =* eccB1 ^ 0x03U;/* ECC 2位错误(0x03)或1位错误(0xCE)*/
l2ramwREG->RAMADDRDECVECT =(1U << 26 | 0xFFFFU);// DESV | RAM_CHIP_SELECT */
l2ramwREG->ramtest =(UINT32) 0x0000004Au;/* 4->InEq.,测试模式,A->测试启用*/
l2ramwREG->ramtest |=(1U <<8);/* 1->触发器*/


我们还想验证 MMDE (12)、WEMDE (11)、REMDE (10)、ADDE (4)。 为了能够生成这些误差源、我们应该如何实施测试代码? 请提供建议。

谢谢、

好的

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Kobori-San、

     请参阅以下过程以运行诊断测试。 只有当它们的诊断失败时、位12、11、10和4的标志才会被置位。 换言之、如果在运行诊断测试后看不到它们被设置、那么它们就通过了。   

    8.2.6诊断测试程序
    写入测试矢量 DIAG_DATA_Vector_H、DIAG_DATA_Vector_L、DIAG_ECC 和
    RAMADDRDEC_VECT、具有所需的测试刺激物。
    2.在 ramtest 中、写入测试使能域和 Ah、写入测试模式域以及不等或的选择
    针对冗余地址解码和 SECDED 多功能诊断的等性测试。 设置正确
    DIAG_ECC、DIAG_DATA_Vector_L 和 DIAG_DATA_Vector_H 寄存器中的值。 ECC 单一
    如果值不匹配、将生成位或双位读取和写入诊断错误。
    在 ramtest 中、写入触发位。 请记住、只有在测试使能时才能启用触发器
    等于 Ah、RAMERRSTATUS[22、21、20、19、12、11、10、4]位为零。 触发诊断测试
    当内存组处于忙状态时、将强制测试等待、直到内存组处于空闲状态。 注意所有诊断
    测试两个 SECDED 并比较冗余地址解码的逻辑、两个 SECDED
    故障、即使触发位可以、数据合并块也会在一个 HCLK 周期内完成
    最后一个 VCLK 周期。
    4.读回寄存器位 RAMERRSTATUS[22、21、20、19、12、11、10、4]并观察通过/失败状态。
    如果在诊断测试中未检测到错误、则将设置错误位。 还将发送诊断错误
    将 ESM 组2设置为"不可纠正的错误类型 B"。