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.

[参考译文] Starterware/DM385:IPNC RDK make 系统被彻底损坏

Guru**** 2581345 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/632438/starterware-dm385-ipnc-rdk-make-system-is-majorly-broken

器件型号:DM385

工具/软件:Starterware

IPNC_RDK-3.9.1的 make 系统不正确支持调试。  Rules.make 配置文件给人的印象是、如果您将 APP_BUILD_CFG 设置为调试、编译将支持调试、但这不会导出、因此编译单元不可见。  特别是、不会在启用-g 的情况下构建 system_server。  同样、虽然 McFW 子系统的 makerules 文件意味着它将使用-g set 进行编译、但如果 config=debug、则永远不会设置 config 变量。  一般而言、我对这种制造系统印象非常差。  

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

    如果您将 APP_BUIL_CFG 更改为调试或发布和编译、则会看到用于调试和发布编译的不同 gcc 选项。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这就是我的帖子的全部要点!  实际上、该开关无法按预期工作!  请仔细阅读我的帖子。  我怀疑是否有人实际尝试从调试器运行 system_server 或 IPNC_RDK_mcfw.out、因为仅此开关并不使用调试信息来构建它们、因为它不会导出、也不会在顶级 makefile 之外看到。  我浪费了几天时间来试图弄清楚为什么他们不会进行调试、直到我意识到问题发生在 make 系统中、而不是我的调试环境中。  我只是假设 TI 在发布软件之前对其进行了最低程度的测试、并且他们的客户群足够广泛、以至于有人在我之前就已经发现了这一点。  

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

    您好!

    在 MCFW 的 makerules 目录中,通过检查以下行,所有二进制文件都使用-g 符号构建

    "ifeq ($(profile_$(core))、debug)"

    并且在 Rules.make 中将 profile_$(CORE)设置为 APP_BUIK_CFG。

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

    这只会对 M3内核代码产生影响。  如果您仔细阅读了我的文章、我将讨论如何调试 A8代码。  您是否曾尝试使用 app_build_CFG=debug 进行编译、并使用 objdump 检查生成的二进制文件?  嗯、L did:system_server 文件被完全去除、并且 IPNC_RDK_mcfw.out 没有行号数据来支持单步执行。