gcc链接器描述文件强制符号位于特定地址

use*_*251 8 c c++ linker gcc elf

我有一个关于gcc链接器描述文件的非常具体的问题.我有一个嵌入式项目,必须确保主符号或主符号的地址出现在特定地址(Elf文件).

原因是,我有一个微控制器,上面有一个bootloader.此引导加载程序应在引导后调用主例程.出于这个原因,我必须在启动后提供跳转到的地址.

是否有一种方法可以使用链接描述文件强制符号始终位于表格顶部或输入地址,或者我甚至可以通过某种方式获取符号的地址以将其写回特定位置?

Thx提前.

rod*_*igo 10

当然有办法.您最好的选择是使用仅适用于您的功能的部分:

int start(void) __attribute__((section(".start")));

int start(void)
{
}
Run Code Online (Sandbox Code Playgroud)

然后在链接器脚本中:

SECTIONS
{
    . = 0x1234; // <---- put here your address
    .start : 
    {
        *(.start)
    }
}
Run Code Online (Sandbox Code Playgroud)

或类似的东西(自从我使用它以来已经很长时间了).