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:TRIG:L2RAM:"不可纠正的错误类型 A:冗余地址解码错误"

Guru**** 2609955 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/759541/tms570lc4357-trig-l2ram-uncorrectable-error-type-a-redundant-address-decode-error

器件型号:TMS570LC4357

您好!

为了 测试处理器、我尝试对冗余地址解码错误进行分类。 我执行了 TRM 描述中描述的诊断程序、该程序与相关帖子中描述的诊断程序相对应。

然而、当我对误差进行三角计算时、不会发生任何情况。 我是否遗漏了任何东西?

谢谢、

此致

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

    您好!

    只有当 TEST_ENABLE = 0xAh 且诊断错误位(RAMERRSTATUS[22、21、20、19、12、11、10、4])为零时、才可以启用 RAN 测试触发器。

    请在触发 RAM 测试之前通过写入1来清除这些错误位。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已经更改了这些寄存器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您是否使用了以下过程:
    1.清除状态寄存器:
    tcram1REG->RAMERRSTATUS = 0xFFFFFFFF;
    tcram2REG->RAMERRSTATUS = 0xFFFFFFFF;

    2.启用诊断测试:
    tcram1REG->ramtest = 0x008AU;
    tcram2REG->ramtest = 0x008AU;

    3.触发检查
    tcram1REG->ramtest |= 0x0100U;
    tcram2REG->ramtest |= 0x0100U;

    4.等待测试完成
    while (tcram1REG->ramtest!= 0x008AU)

    }/*等待*/
    while (tcram2REG->ramtest!= 0x008AU)

    }/*等待*/
    5.检查错误状态
    tram1REG->RAMERRSTATUS & 0x10U 应该= 0x10
    tram2REG->RAMERRSTATUS & 0x10U 应该= 0x10
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是(但我只有一个 RAMMERSTATUS 寄存器)

    我还将 ADDRVECTTSTREG 设置为0x0400FFFF
    将 DIAGECCVECT 更改为0x0000000C
    之间的差异
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、你是对的。 对于 LC43x、只有一个基本地址为0xFFF_F900的 L2RAM 控制寄存器。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    要触发错误、请使用不等式测试(如故障注入):

    tcramREG->ramtest = 0x004AU;
    tcramREG->ramtest |= 0x00100U;

    RAMERRSTATUS 的位4应该被置位。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    不平等仍然没有引起任何影响。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    在触发测试后、状态寄存器的位22和位20被置位。 ESM 组2的通道7被置位、ESM 组3的通道3也被置位。

    ESM 组2的通道7:L2RAMW -不可纠正的错误类型 B

    ESM 组3的通道3:L2RAMW -双位 ECC 不可纠正的错误

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

    您好!

    当我执行相同的测试时,我没有 ESM 组3.3错误,但这并不是我尝试 TRIG 的错误:冗余地址解码错误,根据 TRM,该错误应该提高 RAMMERSTATUS 的位4 (ADDE)。

    我认为它不起作用、因为它被 ECC 错误屏蔽、但即使我在 Diag EccVect (0xC)中输入正确的 ECC 值、  当我使用不等性或等性测试触发测试时、RAMMERSTATUS 中也不会发出任何标志。

    我想我缺少一些东西、但我不知道是什么。

    感谢你的帮助。

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

    您好!

    如果 TEST_MODE 设置为1h、则执行不等式检查。 存储在 RAMADDRDEC_VECT 寄存器中的测试激励被反相并馈入一个通道、而非反相矢量被馈入另一个通道。 XOR 逻辑的预期输出应为0x1。 如果这些输入的 XOR 为零、则在 RAMERRSTATUS 寄存器中设置 ADDE 标志。

    ADDE ( RAMERRSTATUS 的位4)只有在比较元件在测试逻辑-->硬件错误时发生故障时才被置位

     

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

    好的、我想我对诊断目的的理解是因为解释的原因。

    我实际上要做的是检查冗余地址解码、我猜冗余地址解码会在诊断中使用相同的逻辑(比较两个通道输入)、以检查标志是否升高。

    是否有方法访问通道输入以测试冗余地址逻辑并对错误进行三角运算?

    再次感谢您的帮助

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

    您好!

    因此、如果我理解得好、那么对于一个运行良好的芯片(无硬件错误的 CPU)来说没有意义、可以提出与下列 RAMERRSTATUS 位相关的异常:

    置位#1:

    -WEME

    - ADE

    ——我

    置位#2:

    -MSM

    -MSRA

    -MSACP

    设置3:

    -MME

    如果这是真的,我真的很惊讶。 这意味着我们没有必要确保 TI L2RAM 中包含的监控功能确实有效(例如、验证冗余地址解码是否正确标记解码错误等)。 请确认。

    Etienne

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

    您好!

    这是一个用于说明冗余解码的图。

    来自总线主控(CPU 或 DMA)的地址通过两个不同的地址解码器(主、冗余)。 解码器的任务是解码输入地址并将芯片选择生成到存储总线主控想要检索的数据的目标存储器组。 两个解码器的输出相互比较。 基本上、这就是冗余地址解码的功能。

    诊断方法是使用用户定义的激励来测试比较逻辑。 您可以使用不同的向量(在 RAMADDRDEC 寄存器中定义)来执行等性和不等性测试。 诊断测试无法生成 RAMERRSTATUS 寄存器中列出的所有错误。