STM32 CubeIDE 将静态库放置在指定的内存区域并映射到绝对内存地址

问题描述 投票:0回答:1

我有一个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
stm32 gnu linker-scripts stm32cubeide
1个回答
0
投票

您应该能够使用以下语法包含文件的所有部分:

my_lib_section : 
{
    libTestLib.a
} > LIB_region

请参阅 GNU 链接器命令语言手册的章节放置部分:

文件名

您可以简单地命名要放置在当前输出部分中的特定输入文件;该文件中的所有部分都放置在当前部分定义中。

© www.soinside.com 2019 - 2024. All rights reserved.