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.

[参考译文] TMS570LS0432:了解初始化例程

Guru**** 2482105 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/695395/tms570ls0432-understanding-the-initialization-routine

器件型号:TMS570LS0432
主题中讨论的其他器件:HALCOGEN

您好!

我正在尝试了解用于从 Halcogen 中初始化 TMS570的代码。 目前、我想知道 sys_core.asm 中以下代码的作用域、并且属于 _coreInitRegisters_

bl next1
next1
bl next2
next2
bl next3
next3
bl next4
next4
BX r0 

是否有人可以向我解释上述代码对 MCU 的实际作用? 在我看来、它并不是很有用、然后是可移除的。

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

    尊敬的 Marco:

    Cortex-R4的预取单元(PFU)包含一个由分支预测单元使用的返回堆栈。 该返回堆栈包含一个4条目循环缓冲器。 当检测到一个采用的分支时、PFU 将返回地址压入该返回堆栈。 当返回堆栈检测到一个取"返回"指令时、PFU 从返回堆栈顶部的位置获取该指令、并弹出返回堆栈。

    CPU 寄存器初始化例程中的汇编指令序列用于初始化此4条目返回堆栈。 不得将其删除。

    此致、
    Sunil

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

    您好、 Sunil、

    感谢您的回复。

    您是否认为还有一种观察您描述的 PFU 行为的方法?

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

    无法通过任何 CPU 寄存器或存储器映射访问 PFU 内的这种4条目循环返回堆栈。 您可以看到 PFU 返回堆栈 y 为给定应用在 CPU 内启用/禁用分支预测的影响。

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

    好的。 然后,如何观察不再预测所采用的分支?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    使用具有几个分支的应用程序(例如函数调用、返回)、如果可以定义一致的测量点、您会注意到完成应用程序所需的总周期数会增加。 您可以使用 CPU 的内置性能监控单元(PMU)进行周期计数。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Marco、

    您的问题是否已解决?