6

我正在使用基于 gcc 的工具链在嵌入式处理器上开发 ac 应用程序。在我的应用程序中,我需要在特定的内存位置放置一个标志。我需要有关链接器命令文件语法的帮助来完成此操作。

4

2 回答 2

9

在您的 C 文件中编写如下内容:

static int flag __attribute__ ((section (".flag"))) __attribute__ ((__used__)) = 6;

在您的自定义链接器脚本中,将 .flag 添加到所需的部分:

_flag_start = 0x00001234;

.flag _flag_start :
{
  KEEP(*(.flag)) ;
}

请务必将其添加到正确的位置,因为位置指针只能增长位置指针将设置_flag_start + [size of your flag]在此块之后,这意味着所有后续部分都将放置在该地址或更高地址。

当然,阅读和使用David Grayson提供的手册。

于 2013-11-07T08:32:30.673 回答
1

有一次我不得不在 Cortex-M3 上执行此操作。我的链接器脚本很长,很复杂,而且是私有的,但是这个页面帮助我编写了它,你可能会发现它也很有用:

http://www.linuxselfhelp.com/gnu/ld/html_chapter/ld_3.html

我建议找到您的编译器默认使用的现有链接器脚本,然后通过在特定地址添加一个特殊部分来修改它,并将您的标志放在源代码中的该部分中。

于 2013-11-05T03:52:04.197 回答