You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.3 KiB
Plaintext
48 lines
1.3 KiB
Plaintext
2 years ago
|
OUTPUT_ARCH(riscv) /* 目标平台 */
|
||
|
ENTRY(_start) /* 设置程序入口点为entry.asm中定义的全局符号 */
|
||
|
BASE_ADDRESS = 0x80200000; /* 一个常量, 我们的kernel将来加载到这个物理地址 */
|
||
|
|
||
|
SECTIONS
|
||
|
{
|
||
|
. = BASE_ADDRESS; /* 我们对 . 进行赋值, 调整接下来的段的开始位置放在我们定义的常量出 */
|
||
|
/* skernel = .;*/
|
||
|
|
||
|
stext = .; /* .text段的开始位置 */
|
||
|
.text : { /* 表示生成一个为 .text的段, 花括号内按照防止顺序表示将输入文件中的哪些段放在 当前.text段中 */
|
||
|
*(.text.entry) /* entry.asm中, 我们自己定义的.text.entry段, 被放在顶部*/
|
||
|
*(.text .text.*)
|
||
|
}
|
||
|
|
||
|
. = ALIGN(4K);
|
||
|
etext = .;
|
||
|
srodata = .;
|
||
|
.rodata : {
|
||
|
*(.rodata .rodata.*)
|
||
|
*(.srodata .srodata.*)
|
||
|
}
|
||
|
|
||
|
. = ALIGN(4K);
|
||
|
erodata = .;
|
||
|
sdata = .;
|
||
|
.data : {
|
||
|
*(.data .data.*)
|
||
|
*(.sdata .sdata.*)
|
||
|
}
|
||
|
|
||
|
. = ALIGN(4K);
|
||
|
edata = .;
|
||
|
.bss : {
|
||
|
*(.bss.stack) /* 全局符号 sbss 和 ebss 分别指向 .bss 段除 .bss.stack 以外的起始和终止地址(.bss.stack是我们在entry.asm中定义的栈) */
|
||
|
sbss = .;
|
||
|
*(.bss .bss.*)
|
||
|
*(.sbss .sbss.*)
|
||
|
}
|
||
|
|
||
|
. = ALIGN(4K);
|
||
|
ebss = .;
|
||
|
ekernel = .;
|
||
|
|
||
|
/DISCARD/ : {
|
||
|
*(.eh_frame)
|
||
|
}
|
||
|
}
|