我有一个STM32 CubeIDE项目。 我想将静态库放置在内部闪存上部的绝对内存地址中,而应用程序代码将放置在闪存的开头。 但是库的内容是在应用程序代码的文本区域下分配的
我在链接器脚本中做到了这一点:
MEMORY
{
ROM (rx) : ORIGIN = 0x08000000, LENGTH = 244K
LIB_region (rx) : ORIGIN = 0x0803D000, LENGTH = 4K
RAM1 (xrw) : ORIGIN = 0x20000000, LENGTH = 32K
RAM2 (xrw) : ORIGIN = 0x20009000, LENGTH = 28K
}
...
my_lib_section :
{
*(libTestLib.a)
} > LIB_region
您应该能够使用以下语法包含文件的所有部分:
my_lib_section :
{
libTestLib.a
} > LIB_region
请参阅 GNU 链接器命令语言手册的章节放置部分:
文件名
您可以简单地命名要放置在当前输出部分中的特定输入文件;该文件中的所有部分都放置在当前部分定义中。