我正试图将库移动到闪存中的指定部分。
我这样做如下:
.text.freertos : ALIGN(0x1000)
{
FILL(0xdead)
*libfreertos_lib.a:*(.text*)
} >PROGRAM_FLASH
当我把这个放在我的主要部分之后时,它什么都没有得到。该部分仍然是空的,我认为这是因为链接器足够聪明,可以意识到它已经将这个库作为主部分的一部分,并且没有浪费内存的意义。
不过,我真的更希望在main.text部分之后有一堆库。是否还有一种方法可以在main.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