diff options
author | Himbeer <himbeer@disroot.org> | 2024-04-16 15:10:04 +0200 |
---|---|---|
committer | Himbeer <himbeer@disroot.org> | 2024-04-16 15:10:04 +0200 |
commit | c5331b4d3d8f02a4b8eb0166ae4ecce3c4d08942 (patch) | |
tree | 1d58c1dd1eedac528b60c8a05502ca246c013635 /linker.ld | |
parent | f7a77113e2229974886beebcbf3b891bcf118ab7 (diff) |
initial paging helpers
Diffstat (limited to 'linker.ld')
-rw-r--r-- | linker.ld | 25 |
1 files changed, 21 insertions, 4 deletions
@@ -1,5 +1,9 @@ OUTPUT_ARCH("riscv") +MEMORY { + ram (wxa) : ORIGIN = 0x80200000, LENGTH = 128M +} + ENTRY(start) PHDRS { @@ -13,11 +17,24 @@ SECTIONS { .text (0x80200000) : { *(.text.start) *(.text .text.*) - } : lo_rx + } > ram AT > ram : lo_rx + + .rodata : { *(.rodata .rodata.*) } > ram AT > ram : lo_r + .data : { *(.data .data.* ) } > ram AT > ram : lo_rw + .bss : { + *(.bss .bss.*) - .rodata : { *(.rodata .rodata.*) } : lo_r - .data : { *(.data .data.* ) } : lo_rw - .bss : { *(.bss .bss.* ) } : lo_rw + PROVIDE(_bss_end = .); + } > ram AT > ram : lo_rw /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } + + PROVIDE(_memory_start = ORIGIN(ram)); + PROVIDE(_memory_end = ORIGIN(ram) + LENGTH(ram)); + + PROVIDE(_stack_start = _bss_end); + PROVIDE(_stack_end = _stack_start + 0x80000); + + PROVIDE(_heap_start = _stack_end); + PROVIDE(_heap_size = _memory_end - _heap_start); } |