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.

[参考译文] AM6442:如何为 AM6442 生成具有.debug_frame /.eh_frame 的 U‑Boot ELF (TI SDK 10.00.07.04)?

Guru**** 2925550 points

Other Parts Discussed in Thread: AM6442

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1640872/am6442-how-to-generate-u-boot-elf-with-debug_frame-eh_frame-for-am6442-ti-sdk-10-00-07-04

器件型号: AM6442

您好:

我正在尝试使用 JTAG‑ICE (DTS Insight SupervisXross) 调试针对 AM6442 构建的 U‑Boot。 我正在使用 TI Processor SDK 10.00.07.04、其中包含 U‑Boot。 我 Build U‑Boot 并将生成的二进制文件加载到调试器中。

在 JTAG‑ICE 连接到 U‑Boot 后、我可以设置断点并执行单个‑步执行。 ‑、生成的 ELF 二进制文件不包含调试段.debug_frame 或.eh_frame、因此 next/step 取代和变量观察功能不起作用。 JTAG‑ICE 供应商的支持团队认为、缺少.debug_frame/.eh_frame 确实是根本原因。

我已经尝试过:

  • 将以下每个 Kconfig 选项设置为 Yes(是):  
    • CONFIG_CC_Optimize_FOR_SIZE
    • CONFIG_CC_Optimize_FOR_debug  
  • 添加以下 GCC 编译选项:
    • fno-exclude-frame-pointer
    • fno-异步 — 展开表

所有这些更改都没有帮助。 我没有更改构建脚本中的任何其他内容。
   
当我在 KBUILD_CFGS 中设置以下内容时、包含.debug_frame 是否存在差异:  

KBUILD_CFLAGS += -Os -g -fno-omit-frame-pointer -fno-asynchronous-unwind-tables


结果:

  • R5 SPL (u-boot-spl):存在.debug_frame、不存在.eh_frame
  • A53 SPL (u-boot-spl):.debug_frame 和.eh_frame 都不存在
  • A53 U‑引导 (u-boot):.debug_frame 和.eh_frame 都不存在

是否有人知道如何配置 U‑Boot 的构建以使生成的 ELF 包含.debug_frame 和/或.eh_frame? 我们非常希望提供任何建议或举例。

注:在日本、4 月 29 日至 5 月 6 日有一个长假、因此我的回复可能会延迟到 5 月 7 日之后。 感谢您的理解。

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

    您好、我目前在星期三之前不在办公室。  我回到办公室后会检查您的查询。 很抱歉耽误你的时间。

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

    尊敬的 Tsuchiya-San:

    我不熟悉调试构建中的 debug_frame 或 eh_frame 段、我认为这个问题并不是特定于 TI 平台的。 过去我进行了几次 U-Boot 源代码调试、但不记得 U-Boot 的默认调试构建是否有问题。

    您能否介绍一下您尝试调试的 U-Boot 问题? 也许我们可以从不同的角度来看待问题、而不是 JTAG 调试。

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

    尊敬的 Liu-san:

    感谢您的答复。


    目前、U-Boot 没有问题。


    我们正在执行模块测试、以便在自定义实现上实现分支覆盖、为此、我们希望使用 JTAG-ICE 手动检查条件值并修改不可控分支的条件。


    这是否可以通过 JTAG-ICE 以外的方式来实现?

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

    尊敬的 Tsuchiya-San:

    我相信多年前我在 CCS 中针对 U-Boot 调试做了一次条件值修改、除了调试符号外、我不需要特殊的 u-boot 构建。

    AM64x EVM 有一个板载 JTAG 调试器、您是否可以尝试查看是否可以在不修改 U-Boot 构建系统的情况下使用板载 JTAG 在 AM64x EVM 上进行条件值调试?

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

    尊敬的 Liu-san:

    感谢您的答复

    很抱歉、我们目前正在为公司的定制电路板调试 U-Boot、因此可能需要一些时间才能在 EVM 上尝试。

    我计划在我们持续的定制电路板工作之间在 AM64x EVM 上对其进行测试。

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

    尊敬的 Tsuchiya-San:

    别担心。 感谢大家的关注。