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.

[参考译文] 编译器/F28M35H52C:ELF 中的重叠段

Guru**** 2538930 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/678328/compiler-f28m35h52c-overlapping-sections-in-elf

器件型号:F28M35H52C

工具/软件:TI C/C++编译器

我注意到、TI 的 ARM 链接器(15.12.3.LTS)生成的 ELF 二进制文件具有重叠的段。

根据我的理解、这违反了 ELF 标准、该标准规定"文件中的段不能重叠。  文件中的任何字节都不会驻留在多个段中。"

下面是一个示例。 请注意".debug_info"段是如何扩展到".bss"和".data"的。

这是错误还是有意/期望的行为?

谢谢、
心搏


  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    调试段未映射到目标存储器;它们是元数据(在本例中为调试信息)。 非重叠限制不适用于元数据。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回答。 重叠是否起作用?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在本例中、不是 调试段并不占用任何目标存储器、因此它们肯定不会在目标存储器中重叠。 对于此类段、ELF 文件中的"地址"字段毫无意义、并且根据惯例将其设置为零。