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.

[参考译文] TMS570LS3137:锁步验证和 CPU 的预期行为

Guru**** 2595925 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/740590/tms570ls3137-lockstep-verification-and-intended-behavior-of-the-cpus

器件型号:TMS570LS3137

您好!

我对所描述的双核架构的行为有几个问题:

1) 1)根据 CCM 自检、匹配测试、不匹配测试和错误强制模式检查2个 CPU 的信号按预定义序列进行的正确比较。 我能否通过(通过代码或调试)向两个 CPU 引入不同的输出值并查看 CCM 的状态来自行验证 CCM 的正确工作? 如果是,您能否向我解释一下?

2) 2)当调试被执行时、只有寄存器(例如 R0-R15)显示为只有一个 CPU。 是否有某种机制可以避免用户"攻击" MCU 以了解安全预期行为(例如用于并行计算或群集)?

感谢您的回复。

此致、

-Marco

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

    我在>>之后添加了我的评论。

    1) 1)根据 CCM 自检、匹配测试、不匹配测试和错误强制模式检查2个 CPU 的信号按预定义序列进行的正确比较。 我能否通过(通过代码或调试)向两个 CPU 引入不同的输出值并查看 CCM 的状态来自行验证 CCM 的正确工作? 如果是,您能否向我解释一下?

    >>在定义的序列中测试以下方面就足够了:
    a)检查诊断功能的故障指示机制是否正常工作。 这是通过 CCM 自检错误强制模式完成的。
    b)对诊断功能的逻辑运行自检。 这是通过 CCM 自检模式完成的。
    c)检查 CCM 是否实际发出错误比较信号。 这是通过 CCM 错误强制模式完成的。

    通过上述所有检查后、只能实际使用 CCM 正确比较 CPU 输出。 没有其他方法可以故意干扰/损坏 CCM 的 CPU 输出。 两个 CPU 的寄存器可能不会加电到相同的值、在这种情况下、任何会导致 CPU 向存储器输出寄存器值的操作都会导致实际 CCM 比较错误。 但是、这可能并不总是起作用的、因为 CPU 寄存器确实可以加电到相同的值。

    2) 2)当调试被执行时、只有寄存器(例如 R0-R15)显示为只有一个 CPU。 是否有某种机制可以避免用户"攻击" MCU 以了解安全预期行为(例如用于并行计算或群集)?

    >>我不理解这个问题。 请您澄清一下吗?

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

    您好、Sunil、

    感谢您的回复。

    1):  

    是否有办法从你定义的顺序 a)-b)-c)中获取一些证据? 我的目标是展示 TRM 中描述的自检正在进行的操作。 例如:在 CCM 自检错误强制模式期间,如何监控在 将0xA 施加到与 CPU2相关的 CCM 输入时,实际对来自 CPU1的 CCM 输入施加0x5? 如何在自检模式(不匹配和匹配)的两个测试期间监视所提供的图形?

    大约2):

    当然! MCU 有2个 CPU。 这引起了一些疑问:

    调试期间、我只能观察一组内核寄存器;正确的是 R0-R14、PC、SP、LR 和 CPSR。 第二个内核的相应内核寄存器在哪里?

    尽管采用了双核架构,但众所周知,CCM 会定期比较两个 CPU,以检查它们是否正在执行相同的处理(作为安全功能)。 因此、最终就像拥有一个内核、因为另一个内核扮演检查器的角色。 但是,如何确保这种双核架构不能用于不同的目的(例如,用于提高处理性能的最先进的多处理技术,如并行计算)? 我提出这一问题的原因是、在认证背景下、多核架构会对所需的评估产生很大影响;因此、可能有人认为无法以另一种方式使用双核解决问题。

    我希望这次我能更清楚,否则请告诉我。 期待您的回复、并表示感谢。

    -Marco

     

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

    感谢您的说明。 我在>>之后添加了我的答案、如下所示:

    1):

    是否有办法从你定义的顺序 a)-b)-c)中获取一些证据? 我的目标是展示 TRM 中描述的自检正在进行的操作。 例如:在 CCM 自检错误强制模式期间,如何监控在将0xA 施加到与 CPU2相关的 CCM 输入时,实际对来自 CPU1的 CCM 输入施加0x5? 如何在自检模式(不匹配和匹配)的两个测试期间监视所提供的图形?

    >>没有更深的粒度来"观察"比较逻辑的输入。 此外、"比较匹配"和"比较不匹配"测试的模式是在内部生成的、因此也无法观察这些模式。

    大约2):

    当然! MCU 有2个 CPU。 这引起了一些疑问:

    调试期间、我只能观察一组内核寄存器;正确的是 R0-R14、PC、SP、LR 和 CPSR。 第二个内核的相应内核寄存器在哪里?

    >>互连上只能看到一个 CPU 的输出、因此您只能从一个 CPU 读取寄存器。

    尽管采用了双核架构,但众所周知,CCM 会定期比较两个 CPU,以检查它们是否正在执行相同的处理(作为安全功能)。 因此、最终就像拥有一个内核、因为另一个内核扮演检查器的角色。 但是,如何确保这种双核架构不能用于不同的目的(例如,用于提高处理性能的最先进的多处理技术,如并行计算)? 我提出这一问题的原因是、在认证背景下、多核架构会对所需的评估产生很大影响;因此、可能有人认为无法以另一种方式使用双核解决问题。

    >> Cortex-R4 CPU 不支持拆分两个内核以便每个内核独立运行的功能。 Cortex-R5 CPU 支持此功能、但具有 Cortex-R5 CPU 的 Hercules MCU (TMS570LC/RM57)不支持此功能。

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

    尊敬的 Marco:

    感谢您的回答。

    [引用用户="Sunil Oak "]


    >> Cortex-R4 CPU 不支持拆分两个内核以便每个内核独立运行的功能。 Cortex-R5 CPU 支持此功能、但具有 Cortex-R5 CPU 的 Hercules MCU (TMS570LC/RM57)不支持此功能。

    此致、
    Sunil
    [/报价]

    我试图通过架构参考手册和 ARM Cortex-R4的 TRM 来获取它、但未成功。 您是否知道此功能的描述位置? 谢谢。

    此致、

    -Marco

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

    Cortex-R4 CPU 不支持此功能、因此您将无法在 R4 TRM 中找到有关此功能的信息。 您可以在 Cortex-R5 TRM 上搜索"分离/锁定"之类的内容。

    此致、
    Sunil