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.

[参考译文] RM46L430:SafeTI 诊断库测试 SL_SelfTest_SRAM 本身不会清除

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/601225/rm46l430-safeti-diagnostics-library-test-sl_selftest_sram-does-not-cleanup-after-itself

器件型号:RM46L430

您好!

sl_SelfTest_SRAM 测试不会使控制器保持与运行测试之前相同的状态。

某些奇偶 RAM 错误状态位保持置位。

奇偶 ECC 存储器写入保持开启状态。

奇数和偶数 ECC 更改。

奇数和偶数测试模式保持开启状态。

 SafeTIDiagnosticLibrary-User's Guide-v2.3.1中没有任何内容说明需要执行测试后步骤。

我是否缺少勘误表?

此致、

标记。

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

    从您的经验中可以明显看出、为了保持应用程序的连续性、应用程序应该在测试执行前后保存上下文。 我了解您对文档中缺少详细信息来记录此假设的看法、这将作为改进项目反馈给我们的软件团队。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是否在谈论 SRAM_LIVELOCK_DIAGNOSTICS 测试?

    它测试什么(这是哪个唯一标识符)? 为什么它不检查或将任何结果设置到 sl_SelfTest_Result* SRAM_STResult 中? 这不是基于测试名称的 FAULT_INMODET 测试,因此根据手册,它应设置该结果,因为只有故障注入测试不能执行....

    此测试还进行一些备份(RAMTHRESHOLD)(这些备份实际上是两次、一次在"switch-statement"之前、一次在内部案例中进行。 SRAM_ECC_ERROR_性能 评测相同、但测试完成后会恢复设置。 这也是"代码质量"的"很好的示例"、您将设置连续存储两次、并且永远不会使用第一个存储的结果、在这种 LIVELOCK 情况下、您永远不会使用任何存储的数据...

    我没有完成 SRAM_LIVELOCK_DIAGNOSTICS 测试(如生土豆)、这是应该使用的实际测试吗? 如果是、这是哪个唯一标识符?

    此外、您为什么在函数末尾(以及许多其他函数中)将自动变量设置为_sl_FAULT_INPUM=false;这是无用的、只是浪费 CPU 周期... 您也不会在该 SRAM 函数中使用该变量(其他函数会使用该变量)、只需设置两次... "代码质量"的"很好的示例"...

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

    Mark、您好!

    再次访问此主题后、我很愿意打开一张有关您观察到的情况的 TT。 您能否提供有关您正在运行的特定测试模式的更多详细信息? 即、故障注入与自检、单位与双位错误等 我拥有的详细信息越多、我就越能为我们的软件团队提供文档以供复制。

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

    您能否打开一个单独的帖子、其中针对 SRAM 活锁测试记录了这些特定问题? 这将帮助我们更好地跟踪我们需要打开的任何相关错误通知单的来源。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Chuck、

    这是我‘S运行所有的“L_SelfTest_SRAM”测试并报告通过的操作。

    在 IRQ/FIQ 周围插入一个包装程序异常处理程序并截取 ESM 高优先级和低优先级中断处理程序、并且在包装程序中:

               如果 TEST = SRAM_PAR_ADDR_CTRL_self_test、则

                          ESM SR2 = 0x00000400

                          VIM IRQ INTREQ0=0x00000001

    在‘S调用‘L_SelfTest_SRAM’之前:

               保存 TCRAM 偶数和奇数 RAMCTRL

               保存 TCRAM 偶数和奇数 RAMTHRESH

    ‘S调用‘L_SelfTest_SRAM’后:

               恢复 TCRAM 偶数和奇数 RAMCTRL

               恢复 TCRAM 偶数和奇数 RAMTHRESH

               读取以解锁 TCRAM 偶数和奇数 RAMPERADDR、RAMSERRADDR、RAMUERRADDR

               清除 ESM SR3 0x00000028

               清除和错误引脚并将密钥复位为正常

    并非每个测试都需要执行所有步骤、但只有完成这些步骤才能使所有测试报告通过。

    此致、

    标记。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您提供更多信息 Mark! 我会将其转发给我们的 SW 主管、并检查这是否符合预期。 如果没有、我们将打开一个 TT、以便我们可以改进库。 感谢您对此的反馈。 这很有帮助。