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:在上电期间连续执行诊断 RAM16和 RAM17时出现问题

Guru**** 2459240 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1176648/tms570lc4357-problems-when-executing-diagnostics-ram16-and-ram17-consecutively-during-power-on

器件型号:TMS570LC4357

各位专家、您好!

连续运行诊断 RAM16 (RAM ECC Profiler 测试)和 RAM17 (RAM 冗余地址解码)时遇到问题。

添加 RAM16后遇到的第一个问题是、Efuse 自动负载测试开始失败。 重置或开机后、RAM17有时会失败、尽管在 RAM16之前执行了 being。
将 RAM16从测试序列中取出并执行上电复位、始终可以解决问题。
我们最简单的解决方案是在 RAM17大约5000 - 10000个周期后添加等待函数。

以下步骤是 RAM16诊断的一部分:

-在 ECC 激活的情况下将0x0写入 RAM
-禁用 ECC 并启用 ECC_WR_EN
-将0x5151515151515151写入 ECC 以注入1位错误(64位写入)
-激活 ECC
-读取访问 RAM (64位读取)
-检查 ESM 1.4是否已设置
-检查并清洁 CAM
-korrektt ECC
-复位 ESM 和 nERROR

出现此问题的原因可能是什么?

谢谢、此致、
最大

_________

Edit (编辑):程序被解密是 RAM16而不是 Ram17

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

    尊敬的 Max:

    我们已开始处理您的问题、我们将很快回复您。

    --

    谢谢、此致、

    Jagadish。

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

    尊敬的 Max:

    该器件提供了一种测试冗余地址解码器逻辑和比较逻辑的机制。 通过向 ramtest 寄存器写入0xA 可启用该功能、并通过向 ramtest 寄存器的触发位写入1来执行该测试。

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

    您好 QJ、

    我在上一篇文章中发现了错误并进行了更正。

    在再次检查代码后、我们在 RAM16诊断中找到了一个 ERRr、这似乎使我们能够删除一些等待函数。
    现在、在测试冗余地址解码器之前、我们似乎只需要等待2000至5000个周期。

    在执行测试时、我们使用了"void _sl_SelfTest_SRAD_RAD (sl_l2ramwbase_t * ramBase、sl_SelfTest_Result * rad_stResult)"(SafeTI Lib 2.4.0)。

    技术参考手册第8.2.6节中提到以下内容:

    是否可以在运行测试之前等待几个周期、以确保内存组不忙并且立即执行测试?

    谢谢、此致、
    最大

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

    尊敬的 Max:

    我不确定使用 DSB 是否适合您。  DSB 指令之后的指令在 DSB 完成之前的所有存储器访问之前不会被执行。

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

    您好 QJ、

    我们当前使用 DSB。 我们只需使用 for loop 和__asm__(" nop")等待。 使用 DSB 指令似乎不起作用。

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

    测试完成后、触发位自动清零。 您可以使用 while ()等待触发器被清除。

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

    您好 QJ、

    等待触发位没有改变任何东西。 但是、在运行任何其他加电测试之前运行测试可以不等待任何时间。
    例如、在 PMM5和 PMM6诊断之后运行测试需要一个延迟、否则测试或之后的另一个测试将失败。

    有什么想法、这可能是什么问题?

    谢谢、此致、
    最大

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

    尊敬的 Max:

    我刚刚使用 SDL 执行了测试、测试通过。 我在 SRAM RAD 测试之前进行了 PSCON 自检、没有等待任何时间:  

    PSCON 自检

    SRAM 自检(RAD)