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.

[参考译文] TDA4VH-Q1:在 c7x 中的某些函数执行期间、RP 寄存器不会被压入堆栈、从而导致堆栈回扫出现问题。

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1412951/tda4vh-q1-the-rp-register-is-not-pushed-onto-the-stack-during-the-execution-of-some-functions-in-c7x-causing-problems-with-stack-backtrace

器件型号:TDA4VH-Q1
主题中讨论的其他器件:TDA4VH

工具与软件:

芯片:tda4vh

SDK:RTOS 9.01

以下图为例。 RP 寄存器不会被压入堆栈。  通过反向跟踪堆栈无法找到此函数。

编译器是否有强制将 RP 压入堆栈的选项? 或者、在未跟踪栈时、是否有其他方法可以查找函数?

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

    尊敬的 Enguo:

    您是否能够为您的问题提供更多背景信息? 您想做什么、想要的最终功能是什么?

    此致!

    Asha

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

    我希望在输入 PAGE_FAULT 或其他异常时执行栈回溯

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

    尊敬的 Enguo:

    感谢该问题的额外动机。 我将在我结束时进行调查、我将在9月25日尝试回到您的位置

    此致!

    Asha

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

    好的、非常感谢

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

    尊敬的 Enguo:

    感谢您的耐心等待!

    -阿莎

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

    您好、有任何关于此问题的新信息吗?

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

    您好、您找到什么了吗?

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

    无论现在是否有任何进展、请告诉我、谢谢

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

    尊敬的 Enguo:

    对您的问题迟迟不作答复、我深表歉意。  

    您是否使用像 CCS 这样的图形程序来查看以前的调用? 这应该像这样显示-

    另外、正如我在另一个问题中提到的、您也可以看到 SDK 中默认异常处理程序记录的信息、以调试系统中的故障。  

    此致!

    Asha

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

    在大规模生产的电路板上使用 CCS 并不方便。

    我想问、当函数跳跃时、c7x 是否有相应的堆栈推送规则? 与 R5F 一样、函数跳转后的语句的第一行是首先将 LR 推入堆栈。

    如果有此规则、以便我可以通过堆栈回溯函数调用

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

    尊敬的 Enguo:

    我将加入我们的编译器团队、更好地解释其确切行为。 请期待他们的回复。  

    此致!

    Asha

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    编译器是否有强制将 RP 推入堆栈的选项?

    如果 c7x 在函数跳转时具有相应的堆栈推送规则?

    它不是这样工作的。  有时、RP 会复制到入口保存寄存器。  有时会将其压入堆栈。  将其压入堆栈时、对其位置没有约定。  但是 RP 会保留、有关其位置的信息在 Dwarf 调试信息中提供。  CCS 在执行堆栈行走时使用 Dwarf 调试信息。  遗憾的是、没有记录此 Dwarf 调试信息的详细信息。

    谢谢。此致、

    -George.

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

    大家好、我想提一个问题。

    c7x 编译器是否具有可强制将 RP 推入堆栈的任何编译选项?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    c7x 编译器是否有任何可强制将 RP 推入堆栈的编译选项?

    遗憾的是、不可以

    谢谢。此致、

    -George.