【发布时间】:2024-04-25 07:25:02
【问题描述】:
我有一个针对 ARM Cortex-M3 的 GCC 项目。链接描述文件定义了每个源代码段的位置。所以我有这样的部分
.text :
{
*(.text)
} > FLASH
_sidata = .;
.data : AT (_sidata)
{
_sdata = .;
*(.data)
_edata = .;
}
项目使用库lib.a,其中包含目标文件object.o 和other.o。现在我希望将object.o 的.text 部分放在_sdata 和_edata 之间。目的是这些部分将由启动代码从 FLASH 复制到 RAM 并在那里执行。 other.o 不应放在该部分,因为它太大了。
.data : AT (_sidata)
{
_sdata = .;
*(.data)
object.o(.text)
_edata = .;
}
但这失败了,因为 object.o 是从库中获取的,不能直接使用。
【问题讨论】: