Gcc 重新定位库的特定对象文件
我有一个ARM Cortex-M3的GCC项目。链接器脚本定义每个源节必须位于的位置。所以我有这样的部分Gcc 重新定位库的特定对象文件,gcc,ld,Gcc,Ld,我有一个ARM Cortex-M3的GCC项目。链接器脚本定义每个源节必须位于的位置。所以我有这样的部分 .text : { *(.text) } > FLASH _sidata = .; .data : AT (_sidata) { _sdata = .; *(.data) _edata = .; } 该项目使用包含对象文件object.o和other.o的库lib.a。现在我想把object.o的.text部分放在_sdata和_edata之间。目标
.text :
{
*(.text)
} > FLASH
_sidata = .;
.data : AT (_sidata)
{
_sdata = .;
*(.data)
_edata = .;
}
该项目使用包含对象文件object.o和other.o的库lib.a。现在我想把object.o的.text部分放在_sdata和_edata之间。目标是启动代码将这些部分从闪存复制到RAM,并在那里执行。另一个.o不应放在该部分中,因为它太大了
我试过了
但是这失败了,因为object.o是从库中获取的,不能直接使用。我自己找到的。必须指定库
.data : AT (_sidata)
{
_sdata = .;
*(.data)
lib.a:object.o(.text)
_edata = .;
}
.data : AT (_sidata)
{
_sdata = .;
*(.data)
lib.a:object.o(.text)
_edata = .;
}