我在stm32核板上工作。我的项目由几个不同的库组成。
我想将所有未初始化的变量从静态库(mylib.a)中放入特定的内存部分而不是bss部分。
以下是链接描述文件中的bss部分:
. = ALIGN(4);
.bss :
{
/* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
*(.bss*)
*(COMMON)
. = ALIGN(4);
_ebss = .; /* define a global symbol at bss end */
__bss_end__ = _ebss;
} >RAM
我尝试在bss之前添加此部分:
. = ALIGN(4);
.mybss :
{
/* This is used by the startup in order to initialize the .bss section */
_smybss = .; /* define a global symbol at bss start */
__mybss_start__ = _smybss;
mylib.a:*(.bss)
mylib.a:*(.bss*)
mylib.a:*(COMMON)
. = ALIGN(4);
_emybss = .; /* define a global symbol at bss end */
__mybss_end__ = _emybss;
} >RAM
编译器没有抱怨但是当我用nm命令检查时,生成的elf _smybss符号与_emybss符号的地址相同。所以mybss部分是空的。
你对如何实现这个有什么建议吗?
由于