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:读取 TMS570LC 分支历史表的内容并返回堆栈缓冲器

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/579683/tms570lc4357-read-the-contents-of-the-tms570lc-branch-history-table-and-return-stack-buffer

器件型号:TMS570LC4357

您好!

我使用的是 TMS570LC、想测试 Cortex-R5分支历史表是否无效以及返回堆栈缓冲区是否有效。 为此、我想在操作之前读取其内容、然后再次读取以验证是否为空。 是否可以通过代码执行此类读取? 如果不是、调试端口是否可以访问该端口?

谢谢。

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

    不幸的是、不清楚您要问什么? 您是指清除栈中的分支历史记录和返回地址、还是指禁用分支预测功能? 我不熟悉术语"分支机构历史表"和"返回堆栈缓冲器",在器件级 TRM 或 ARM Cortex-R5 TRM ( infocenter.arm.com/.../index.jsp )中找不到对它们的引用
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我的意思是查看分支历史记录和返回地址的内容。 与此功能类似、MCU 必须查看高速缓存的内容。 我想看到分行历史记录在失效后是空的证据。

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

    CPU 无法读取分支历史表。 它只能写入、正如您所提到的。 确保分支历史记录保持两个内核的同步至关重要、这通常在启动时完成。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    好的、谢谢。 我想这也适用于返回地址。

    但是、调试器是否能够以只读方式访问分支历史记录的内容? (通过 JTAG 端口)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    只有最新的返回地址在 CPU 的 LR 寄存器中可见、并且通过查看 CPU 寄存器在调试器中可见。

    分支历史记录不可供 CPU 或调试逻辑(包含 JTAG 端口)查看或访问。