Files
osc2025/bootloader/linker.ld
2025-03-21 03:39:25 +08:00

51 lines
1.1 KiB
Plaintext

ENTRY(_start)
MEMORY
{
NEWTEXT (rx) : ORIGIN = 0x10000, LENGTH = 32K
NEWRO (r) : ORIGIN = 0x18000, LENGTH = 8K
NEWDATA (rw) : ORIGIN = 0x1a000, LENGTH = 8K
NEWBSS (rw) : ORIGIN = 0x1c000, LENGTH = 8K
TEXT (rx) : ORIGIN = 0x80000, LENGTH = 32K
RO (r) : ORIGIN = 0x88000, LENGTH = 8K
DATA (rw) : ORIGIN = 0x8a000, LENGTH = 8K
BSS (rw) : ORIGIN = 0x8c000, LENGTH = 8K
RAM (rw) : ORIGIN = 0xa4000, LENGTH = 4M
}
SECTIONS
{
.text : {
__text_start = .;
KEEP(*(.text.boot))
*(.text)
__text_end = .;
} >TEXT
.rodata : {
__rodata_start = .;
*(.rodata)
__rodata_end = .;
} >RO
.data : {
__data_start = .;
*(.data)
__data_end = .;
} >DATA
.bss : {
__bss_start = .;
*(.bss)
__bss_end = .;
} >BSS
__stack_end = ORIGIN(RAM) + LENGTH(RAM);
__new_text_start = ORIGIN(NEWTEXT);
__new_ro_start = ORIGIN(NEWRO);
__new_data_start = ORIGIN(NEWDATA);
__new_bss_start = ORIGIN(NEWBSS);
}
__heap_start = ORIGIN(RAM);
__heap_end = ORIGIN(RAM) + LENGTH(RAM) - 2M;
__bss_size = (__bss_end - __bss_start)>>3;