36 lines
1.2 KiB
Plaintext
36 lines
1.2 KiB
Plaintext
|
/* link.ld - 自定义链接脚本 */
|
|||
|
OUTPUT_ARCH(riscv) /* 目标架构:RISC-V */
|
|||
|
ENTRY(_start) /* 程序入口点:_start 符号 */
|
|||
|
|
|||
|
/* 内存布局定义(根据实际硬件调整) */
|
|||
|
MEMORY {
|
|||
|
RAM (rwxa) : ORIGIN = 0x80000000, LENGTH = 128M /* 起始地址 0x80000000,大小 128MB */
|
|||
|
}
|
|||
|
|
|||
|
/* 段布局 */
|
|||
|
SECTIONS {
|
|||
|
.text : { /* 代码段:存放指令 */
|
|||
|
*(.text.entry) /* 入口代码(如 _start)优先放在最开始 */
|
|||
|
*(.text) /* 其他代码 */
|
|||
|
} > RAM /* 加载到 RAM 区域 */
|
|||
|
|
|||
|
.rodata : { /* 只读数据段:常量、字符串等 */
|
|||
|
*(.rodata)
|
|||
|
} > RAM
|
|||
|
|
|||
|
.data : { /* 数据段:初始化的全局变量 */
|
|||
|
*(.data)
|
|||
|
} > RAM
|
|||
|
|
|||
|
.bss : { /* BSS 段:未初始化的全局变量(自动清零) */
|
|||
|
*(.bss)
|
|||
|
} > RAM
|
|||
|
|
|||
|
/* 栈定义:从 RAM 高地址向下增长,大小 16KB */
|
|||
|
.stack : {
|
|||
|
. = ALIGN(16); /* 栈地址 16 字节对齐 */
|
|||
|
stack_top = .; /* 栈顶地址符号 */
|
|||
|
. += 16K; /* 栈大小 16KB */
|
|||
|
stack_bottom = .; /* 栈底地址符号(供初始化用) */
|
|||
|
} > RAM
|
|||
|
}
|