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.

[参考译文] TMS320F28027:如何在 CSM 密码被设定的情况下找到所有安全内存访问违反?

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/992788/tms320f28027-how-to-find-all-secure-memory-access-violations-with-csm-password-set

器件型号:TMS320F28027

当我通过设置密码打开 CSM 时、处理器挂起并复位、因为有一些指令从非安全存储器中执行、用于访问安全存储器。  这是一个继承项目、以前的开发人员似乎没有将适当的变量保留在适当的存储器中。  现在我要让 CSM 正常工作、这意味着我需要找到所有这些违规、并修复它们。  我获取了编译输出、提取了文件名、然后使用 grep 在所有这些文件中搜索映射文件中列出的所有 ROM 函数。 结果显示、使用可能错误放置的存储器的 ROM 函数的唯一实例是使用 CTRL_Obj 和 EST_Obj。  EST_Obj 自动放置在0x600、位于 RAMM0/M1中、我也调整了 cmd 文件以将 CTRL_Obj 也放置在 RAMM0/M1中。  此更改允许我在不挂起/复位的情况下通过初始设置、但一旦我启动实际的电机控制、处理器就会挂起并复位。  我使用了 CsmUnlock()来验证这些挂起/复位仅是由于安全违规所致。

我确实有几个函数被放置在 RAM 中、但它们都位于 L0 SARAM 中、这是安全的。  RAMM0/M1之外没有执行任何函数。  如果这是真的、那么安全违例只能是一个 ROM 函数、该函数会传递指向安全 RAM 的指针、对吧?  

如何找到所有这些实例?

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

    你(们)好

    [引用 userid="460910" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/992788/tms320f28027-how-to-find-all-secure-memory-access-violations-with-csm-password-set。]我确实有一些函数放置在 RAM 中、但它们都位于 L0 SARAM 中、这是安全的。  RAMM0/M1之外没有执行任何函数。  如果为真、则安全违规只能是通过指向安全 RAM 的指针的 ROM 函数、对吧?

    情况就像这样。 找不到所有此类实例的简单方法。 您需要浏览每个函数并检查是否存在任何安全违规。  

    此致、

    Vivek Singh