ld:从主 .text 部分中排除库并将其移动到另一个部分
ld: exclude library from main .text section and move it to another section
我正在尝试将库移动到闪存中的指定部分。
我是这样操作的:
.text.freertos : ALIGN(0x1000)
{
FILL(0xdead)
*libfreertos_lib.a:*(.text*)
} >PROGRAM_FLASH
当我把它放在我的主要部分之后时,它什么也没有产生。该部分仍然是空的,我认为是因为链接器足够聪明,可以意识到它已经将这个库作为主要部分的一部分,并且没有必要浪费内存。
不过,我真的更希望在主要的 .text 部分之后有一堆库。还有一种方法可以在主 .text 部分中排除库吗?我正在寻找类似
的东西
EXCLUDE_<something>(*libfreertos_lib.a:*(.text*))
我知道 EXCLUDE_FILE 存在,但我不想列出属于某个库的所有 .o 文件
最终将该部分推送到 Flash 中的单独部分。
MEMORY
{
/* Define each memory region */
PROGRAM_FLASH (rx) : ORIGIN = 0x60000000, LENGTH = 0xC0000
LIBRARY_FLASH (rx) : ORIGIN = 0x600C0000, LENGTH = 0x10000
SRAM_DTC (rwx) : ORIGIN = 0x20000000, LENGTH = 0x10000
SRAM_ITC (rwx) : ORIGIN = 0x0, LENGTH = 0x10000
}
.freertos : ALIGN(4)
{
FILL(0xdd)
*libfreertos_lib.a:*(.text*)
} >LIBRARY_FLASH
我正在尝试将库移动到闪存中的指定部分。
我是这样操作的:
.text.freertos : ALIGN(0x1000)
{
FILL(0xdead)
*libfreertos_lib.a:*(.text*)
} >PROGRAM_FLASH
当我把它放在我的主要部分之后时,它什么也没有产生。该部分仍然是空的,我认为是因为链接器足够聪明,可以意识到它已经将这个库作为主要部分的一部分,并且没有必要浪费内存。
不过,我真的更希望在主要的 .text 部分之后有一堆库。还有一种方法可以在主 .text 部分中排除库吗?我正在寻找类似
的东西EXCLUDE_<something>(*libfreertos_lib.a:*(.text*))
我知道 EXCLUDE_FILE 存在,但我不想列出属于某个库的所有 .o 文件
最终将该部分推送到 Flash 中的单独部分。
MEMORY
{
/* Define each memory region */
PROGRAM_FLASH (rx) : ORIGIN = 0x60000000, LENGTH = 0xC0000
LIBRARY_FLASH (rx) : ORIGIN = 0x600C0000, LENGTH = 0x10000
SRAM_DTC (rwx) : ORIGIN = 0x20000000, LENGTH = 0x10000
SRAM_ITC (rwx) : ORIGIN = 0x0, LENGTH = 0x10000
}
.freertos : ALIGN(4)
{
FILL(0xdd)
*libfreertos_lib.a:*(.text*)
} >LIBRARY_FLASH