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.

[参考译文] TMS570LC4357:如何在软件中读取堆栈溢出

Guru**** 2431450 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1279106/tms570lc4357-how-to-read-stack-overflow-in-the-sw

器件型号:TMS570LC4357

尊敬的支持团队:

如何在运行期间定期监控堆 栈指针以及检查 SW 是否会发生堆栈溢出?

此致、

M·塞尔瓦拉伊

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

    尊敬的

    如果您使用的是 TI Code Composer Studio、它会提供一个 Stack Usage View 选项、如下页所示: CCS 中的"Stack Usage"视图(TI.com)。、可使用 CCS v12上的"查看"菜单查看

    在 CCS 中还提供了观察点断点等其他选项以用于跟踪此目的、如 在 通过 CCS 检查 Stack Overflow 时对不相关产品的详细说明(TI.com)

    我希望它有助于您使用 Hercules MCU 检查 CCS 上的 Stack Overflow。

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

    尊敬的 Manoraj:  

    您可以使用 MPU 的重叠区域和子区域进行堆栈保护。

    请参阅 ARM Cortex-R5 TRM 的第7.1.2节

    https://developer.arm.com/documentation/ddi0460/latest/

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

    感谢 QJ Wang

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

    如何设置 最低有效子区域禁用位(如下面的配置)?

    此致、

    M·塞尔瓦拉伊

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

    这是禁用子区域的正确方法:

    1.复选框0

    2.保存项目并生成代码

    3.将设置新代码的 CP15 MPU 区大小寄存器的位8。

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

    好的。

    什么是后台故障?

    这是后台故障吗?

    此致、

    M·塞尔瓦拉伊

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

    它指示发生数据中止。 我不确定这是否是 MPU 背景故障。

     访问已禁用子区域中的存储器地址时、将使用较低优先级区域的属性和权限 、如果该地址处没有其他区域重叠、则会生成后台故障。  

    请检查 C15数据故障状态寄存器(DFSR)的值。

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

    然后、在哪里可以看到  背景故障?

    此致、

    M·塞尔瓦拉伊

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

    这可能是数据中止。 您可以检查 DFSR 寄存器中的故障标志。

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

    以下是访问已禁用子区的示例:

    1.禁用子区域#6和#7 (0x08060000~0x08080000)

    2.访问这些禁用的子区域中的某个位置。

    3.生成数据中止:

    4.检查 CP15 DFSR 和地址寄存器的值。 故障发生在0x08070000、故障由背景引起

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

    谢谢