我对如何使用gcc工具指定代码的起始地址有疑问。
我通常使用链接描述文件来指定代码的起始地址:

SECTIONS
{
   .  =  0x10000;
   .text  :  {  *(.text)  }
   .  =  0x8000000;
   .data  :  {  *(.data)  }
   .bss  :  {  *(.bss)  }
}


在分析TI X-Loader(用于beagleboard)时,我看到在x-load.lds中,起始地址为0x00000000。正确的起始地址由config.mk文件中的“ -Ttext 0x40200800”(RAM)指定为LD选项。

我的问题:为什么在config.mk(LDFLAGS)中使用-Ttext而不是在链接描述文件中指定它?

在此先感谢您的帮助。

问候,马丁

最佳答案

好吧,基本上是因为与避免使用任何硬编码值相同的原因-参数化更容易。

此外,您不必挖掘链接程序脚本,因此对于新手来说更容易。

如果您要寻找“主要”原因-没有一个。

08-17 04:31