【问题标题】:How to add new memory sections to the GCC default linker script?如何向 GCC 默认链接描述文件添加新的内存部分?
【发布时间】:2015-04-08 09:17:42
【问题描述】:

GCC 链接器 replaces the default linker script 的 -T 命令。 但我不想替换默认的链接器脚本。 我想将我的新部分定义附加到现有的默认链接描述文件中。

如何将新的内存段添加到默认链接描述文件中?

【问题讨论】:

  • 本身没有回答您的问题,但您是否考虑过使用 __attribute__((section("special_secion_name"))) 在单独的部分中标记您想要的代码部分?这样,您就可以为除表示的变量/函数之外的所有内容保留原始链接器行为
  • 可以使用INSERT 将部分和内存位置添加到默认链接描述文件中,如here 所述。创建文件后,您可以使用 -T path-to-file/flash.ld 作为链接器选项添加它(文件名只是一个示例)。对于路径,它取决于 Atmel Studio 的 IDE,您需要执行 ../flash.ld,而对于 MPLABX,它只是 ./flash.ld(如果文件位于项目的根目录)

标签: c gcc linker


【解决方案1】:

我认为没有直接的方法可以做你想做的事。

你可以做的是让ld 打印默认脚本文件(-Wl,-verbose===============s 之间的部分是链接器脚本),把它放在一个文件中,用你的添加并最终将其作为链接器脚本提供给您的链接命令。

编写一个执行此操作的脚本并将其集成到您的构建脚本中应该相当容易。

【讨论】:

猜你喜欢
  • 2017-02-04
  • 2015-04-25
  • 1970-01-01
  • 2012-01-31
  • 2017-10-28
  • 2018-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多