请阅读【嵌入式开发学习必备专栏 之 ARM GCC 编译专栏】
NOLOAD 和 GROUP 的详细介绍
在使用 arm-none-eabi-gcc
工具链中的链接器脚本时,链接脚本使用链接器命令语言来描述如何生成最终的可执行文件。其中,noload
和 group
是两个用于控制链接过程的关键字。
NOLOAD 关键字
NOLOAD
关键字用于指示链接器在输出文件中分配空间给指定的段(section),但实际上不将段的内容加载到输出文件中。这通常用于创建未初始化的数据段(比如 .bss
)或者为特定目的预留空间,但节省了镜像文件的大小。
示例:
SECTIONS {
.bss (NOLOAD) : {
*(.bss)
}
}
在这个例子中,.bss
段被指示为 NOLOAD
。因此,虽然为 .bss
段的变量分配了地址空间,但在输出文件(如 ELF 文件)中不会占用实际的存储空间。
GROUP 关键字
GROUP