SummerCart64/sw/riscv/SC64.ld

55 lines
1.3 KiB
Plaintext
Raw Normal View History

MEMORY {
2022-01-21 21:42:17 +01:00
ram (rwx) : org = 0x00000000, len = 16k - 512
buffer (rw) : org = 0x00003E00, len = 512
2022-01-18 19:21:49 +01:00
rom (rx) : org = 0x10010000, len = 26k
}
ENTRY(reset_handler)
SECTIONS {
.text.reset_handler : {
*(.text.reset_handler)
} > rom
.text : {
_sitext = LOADADDR(.text);
. = ALIGN(4);
_stext = .;
*(.text .text.* .gnu.linkonce.t.*)
*(.rodata .rodata.* .gnu.linkonce.r.*)
. = ALIGN(4);
_etext = .;
} > ram AT > rom
.data : {
_sidata = LOADADDR(.data);
. = ALIGN(4);
_sdata = .;
*(.data .data.* .gnu.linkonce.d.*)
. = ALIGN(4);
_ssdata = .;
*(.srodata.cst16) *(.srodata.cst8) *(.srodata.cst4) *(.srodata.cst2) *(.srodata .srodata.*)
*(.sdata .sdata.* .gnu.linkonce.s.*)
. = ALIGN(4);
_edata = .;
} > ram AT > rom
.bss : {
. = ALIGN(4);
_sbss = .;
*(.sbss .sbss.* .gnu.linkonce.sb.*)
*(.scommon .scommon.*)
*(.bss .bss.* .gnu.linkonce.b.*)
*(COMMON)
. = ALIGN(4);
_ebss = .;
} > ram
2022-01-20 20:28:59 +01:00
.buffer : {
*(.buffer)
} > buffer
__global_pointer$ = MIN(_ssdata + 0x800, MAX(_sdata + 0x800, _ebss - 0x800));
__stack_pointer$ = ORIGIN(ram) + LENGTH(ram);
}