35 lines
782 B
Markdown
35 lines
782 B
Markdown
|
||
- 例子
|
||
`SECTIONS`
|
||
`{`
|
||
`. = 0x10000;`
|
||
`.text : { *(.text) }`
|
||
`. = 0x8000000;`
|
||
`.data : { *(.data) }`
|
||
`.bss : { *(.bss) }`
|
||
`}`
|
||
|
||
`section [address] [(type)] :`
|
||
`[AT(lma)]`
|
||
`[ALIGN(section_align)]`
|
||
`[constraint]`
|
||
`{`
|
||
`output-section-command`
|
||
`output-section-command`
|
||
`...`
|
||
`} [>region] [AT>lma_region] [:phdr :phdr ...] [=fillexp]`
|
||
|
||
- MEMORY字段用于定义内存区域(Memory Region)
|
||
- SECTIONS
|
||
- 告诉链接器如何把输入段映射到输出段。
|
||
- LOADADDR/ADDR
|
||
- LOADADDR 返回加载地址LMA
|
||
- ADDR 返回虚拟地址VA
|
||
- PROVIDE
|
||
- provide定义的值相当于一个弱符号, 可以被后面的定义进行覆盖。
|
||
- KEEP
|
||
- SIZEOF
|
||
- 各种地址
|
||
- 加载地址
|
||
- 运行地址
|
||
- 链接地址 objdump看到的地址 |