链接脚本(Linker Script)是控制程序链接过程的重要工具,在嵌入式开发、操作系统内核等场景中尤为关键。以下从基础到进阶为系统讲解:
一、基础概念
-
作用:
- 定义内存布局(Memory Layout)
- 指定代码/数据段的存放位置
- 控制符号(Symbols)的地址分配
- 管理不同内存区域的访问权限
-
默认行为:
链接器(如GNUld
)有默认脚本,可通过ld --verbose
查看。自定义脚本会覆盖默认行为。
二、核心语法
1. 内存区域定义
MEMORY {
ROM (rx) : ORIGIN = 0x00000000, LENGTH = 256K
RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 64K
}
rx
/rwx
:权限标志(Read/eXecute, Read/Write/eXecute)<