我对如何使用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而不是在链接描述文件中指定它?
在此先感谢您的帮助。
问候,马丁
最佳答案
好吧,基本上是因为与避免使用任何硬编码值相同的原因-参数化更容易。
此外,您不必挖掘链接程序脚本,因此对于新手来说更容易。
如果您要寻找“主要”原因-没有一个。