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看到的地址
|