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:关于 VIM4 SRAM 内容的定期硬件 CRC 检查

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/572889/tms570ls3137-about-vim4-periodic-hardware-crc-check-of-sram-contents

器件型号:TMS570LS3137

请告诉我 VIM 的 CRC。

VIM 区域中是否有 CRC 存储位置?

请告诉我如何响应此安全功能
此外、这是否是一种假设它是什么类型的击穿的安全功能?

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

    VIM 没有任何我在参考手册的 VIM 章节中知道或看到的 CRC。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    通常、一旦被初始化、VIM RAM 在应用中是恒定的。 由于它是常数并基于您的应用、因此生成的 CRC 可以是代码中定义的常数、您可以将 CRC 计算结果与 VIM RAM 空间进行比较以确保 VIM RAM 内容的有效性。 即、您应该能够确定矢量是什么、并通过相同的 CRC 算法离线运行这些矢量、并将结果作为 const 或#define 放入代码中。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢你
    能否将 CRC 模块功能用于 VIM RAM 区域?
    此外、在这种情况下、您是否知道执行时间有多长?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的用户4777395:

    因此、实际上、您必须考虑某些 VIM 寄存器将根据系统何时的状态而变化
    您执行这样的 CRC。 例如、在任何给定的时间、INTREQ[]寄存器中可能会有不同的中断挂起。

    此外、您还需要考虑读取某些寄存器会更改 VIM 的状态;例如、如果您读取 FIQVECREG 它
    实际上、将清除最高挂起中断、并将矢量更改为下一个最高挂起中断。

    因此,这项建议在实践中是必须极其谨慎地执行的。

    另请注意,硬件 CRC 模块不是总线主控模块,因此您基本上必须编写一个测试,该测试使用 CPU 来读取 VIM 中的“自动”配置的寄存器.... 它将是所有 VIM 寄存器的一个小子集;然后使用 CRC 模块硬件计算签名。 或者、您也可以决定硬件 CRC 不值得麻烦、并在读取少数寄存器时使用 CPU 计算 CRC。

    您需要阅读14.2.2 CRC 操作模式才能真正理解这一点.... 有三种模式。

    由于 VIM 寄存器文件中有太多的危险(其内容是动态的或者对读取有副作用的寄存器)、如果你想要使用硬件 CRC、也许需要使用完全 CPU 模式14.2.2.3。 您必须决定是否值得为 V. s 付出努力。只需添加 CPU 代码来计算 CRC...

    无论如何、由于这是所有 CPU 驱动的、因此假设您读取的每个寄存器的 CPU 周期大约为22-25个周期、加上计算 CRC 所需的任何时间。

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

    用户好!

    请注意、安全机制 VIM4只能在 VIM RAM 上执行、而不是在寄存器上执行。 静态控制寄存器的定期回读机制将涵盖这些寄存器。 CRC 不用于动态更改内容、因此 Anthony 指出的问题不应成为问题。 但是、如果您希望这样做、那么在寄存器空间中使用 CRC 并不是一种禁止的做法、只需注意 Anthony 提到的警告说明即可。