1

我试图弄清楚如何在我的应用程序的 LD 文件中定义自定义输出部分。到目前为止,这就是我想出的......

MEMORY
{
  ...
  m_my_custom_section (RW)  : ORIGIN = 0x00002400, LENGTH = 0x00000400
  ...
}

SECTIONS
{
  ...
  .my_custom_section :
  {
    . = ALIGN(4);
    KEEP(*(.my_custom_section))
    . = ALIGN(4);
  } > m_my_custom_section
  ...
}

不幸的是,这就是我卡住的地方。当应用程序链接时,我不确定如何指定我希望将代码的哪些部分分配给该部分。任何帮助都会很棒。:)

4

1 回答 1

1

我相信我在@Mike Kinghan 的评论中找到了答案:

在标准 C 或 C++ 中,没有定义节的语法方法。节定义通常完全是编译器的事情。编译器可能具有非标准扩展,可让您将对象分配给命名节。对于 GCC,请参阅Common Variable AttributesCommon Function Attributes__attribute__ ((section ("<section-name>")))中的文档。此类扩展用于特殊目的。

于 2018-03-29T19:04:13.857 回答