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.

[参考译文] SAFETI_DIAG_LIB:使用 SL_SelfTest_STC 定期执行 CPU2B (这会导致复位?)

Guru**** 2481465 points
Other Parts Discussed in Thread: RM48L952

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/705114/safeti_diag_lib-periodic-execution-of-cpu2b-with-sl_selftest_stc-which-causes-a-reset

器件型号:SAFETI_DIAG_LIB

大家好、

我们希望在 RM48L952上使用 CPU2A 和 CPU2B 诊断(分别为 LBIST STC 的引导时间和定期执行)。
在软件安全手册(SPNU592A–2015年4月–2016年10月修订版) p 17中、可以发现这两个测试都必须使用 API 中的 SL_SelfTest_STC 函数来执行。

sl_SelfTest_STC 函数具有以下定义:

布尔 SL_SelfTest_STC ( 寄存器 SL_SelfTestType   TestType、
寄存器布尔值   BMODE、
寄存器 SL_STC_Config *   配置  
)

API 文档显示 testType 有2个有效值(对于 R4器件):STC_run 和 STC_COMPARE_SELFCHECK。  
我假设其中一个用于 CPU2A、另一个用于 CPU2B。

API 文档还提到以下内容:

注意:如果 STC 已启动、函数不会返回

注意:在 STC 执行结束时、STC 控制器发出 CPU 复位信号。 因此、应用启动必须确保在复位类型为 RESET_TYPE_CPU 和连接调试器时不执行 STC。

定期测试会引起复位、这是正常的方式、还是我缺少什么东西、这似乎很奇怪?

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

    CPU2A 在启动时进行 STC 测试、CPU2B 是定期 STC 测试。 SL_SelfTest_STC 中的测试类型为 STC_run 和 STC_COMPARE_SELFCHECK。 此函数可在启动时或正常运行期间的任何时间调用。

    无论通过与否、STC 都会在测试完成后生成 CPU 复位。

    如果 STC 只在启动时运行、则用户软件不需要保存 CPU 内容、因为引起的复位将经历所有启动配置。

    如果在正常运行期间运行 STC、用户软件必须保存 CPU 内容并在 STC 测试完成导致 CPU 复位后重新加载这些内容。