diff options
Diffstat (limited to 'website-kernel/arch/linker.ld')
| -rw-r--r-- | website-kernel/arch/linker.ld | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/website-kernel/arch/linker.ld b/website-kernel/arch/linker.ld new file mode 100644 index 0000000..52a3a05 --- /dev/null +++ b/website-kernel/arch/linker.ld @@ -0,0 +1,52 @@ +OUTPUT_ARCH(riscv) +ENTRY(_start) + +MEMORY +{ + ROM (rx) : ORIGIN = 0x80000000, LENGTH = 1M + RAM (rwx) : ORIGIN = 0x20000000, LENGTH = 4M +} + +SECTIONS +{ + .text : { + KEEP(*(.text._start)) + KEEP(*(.text.start)) + *(.text) + *(.text.*) + } > ROM + .rodata : { + *(.rodata) + *(.rodata.*) + } > ROM + + .init_array : { + __init_array_start = .; + KEEP(*(.init_array)) + KEEP(*(.init_array.*)) + __init_array_end = .; + } > ROM + + .data : { + __data_start = .; + *(.data) + *(.data.*) + __data_end = .; + } > RAM AT> ROM + __data_load = LOADADDR(.data); + + .bss : { + __bss_start = .; + *(.bss) + *(.bss.*) + *(COMMON) + __bss_end = .; + } > RAM + + .stack (NOLOAD) : { + . = ALIGN(16); + __stack_bottom = .; + . += 8K; + __stack_top = .; + } > RAM +} |
