下面是一个**.ld 的脚本文件

. = 0x80000000;

.text.boot : { *(.text.boot) }
.text : { *(.text) }
.rodata : { *(.rodata) }
.data : { *(.data) }
. = ALIGN(0x8);
bss_begin = .;
.bss : { *(.bss*) }
bss_end = .;

上篇文章介绍过各种段 :
. = 0x80000000;
这行代码将当前地址(location counter)设置为 0x80000000。这意味着接下来的段(sections)将从这个地址开始布局。

.text.boot : { *(.text.boot) }
.text : { *(.text) }

.text.boot 段:包含所有输入文件中 .text.boot 段的内容。
.text 段:包含所有输入文件中 .text 段的内容。
其他的类似

. = ALIGN(0x8);
这行代码将当前地址对齐到 8 字节边界。对齐是为了满足某些架构或数据类型的对齐要求。
bss_begin = .;
这行代码定义了一个符号 bss_begin,它表示当前地址,即 .bss 段的起始地址。


putao
8 声望3 粉丝

推动世界向前发展,改善民生。