91 lines
1.7 KiB
Plaintext
91 lines
1.7 KiB
Plaintext
OUTPUT_ARCH(loongarch)
|
|
ENTRY(_start)
|
|
|
|
MEMORY
|
|
{
|
|
isram (rwxai) : ORIGIN = 0x1c000000, LENGTH = 512K
|
|
dsram (rwxai) : ORIGIN = 0x1c080000, LENGTH = 512K
|
|
}
|
|
|
|
SECTIONS
|
|
{
|
|
__stack_size = DEFINED(__stack_size) ? __stack_size : 4K;
|
|
|
|
.init :
|
|
{
|
|
KEEP(*(SORT_NONE(.init)))
|
|
} >isram AT>isram
|
|
|
|
. = ALIGN(16);
|
|
.text :
|
|
{
|
|
_ftext = .;
|
|
*(.text.unlikely .text.unlikely.*)
|
|
*(.text.startup .text.startup.*)
|
|
*(.text .text.*)
|
|
*(.gnu.linkonce.t.*)
|
|
} >isram AT>isram
|
|
|
|
. = ALIGN(16);
|
|
.rodata :
|
|
{
|
|
*(.rdata)
|
|
*(.rodata .rodata.*)
|
|
*(.gnu.linkonce.r.*)
|
|
*(.srodata.cst16)
|
|
*(.srodata.cst8)
|
|
*(.srodata.cst4)
|
|
*(.srodata.cst2)
|
|
*(.srodata .srodata.*)
|
|
} >isram AT>isram
|
|
|
|
. = ALIGN(16);
|
|
PROVIDE(__etext = .);
|
|
PROVIDE(_etext = .);
|
|
PROVIDE(etext = .);
|
|
PROVIDE(_data_lma = .);
|
|
|
|
.data ORIGIN(dsram) :
|
|
{
|
|
PROVIDE(_data = .);
|
|
*(.data .data.*)
|
|
*(.gnu.linkonce.d.*)
|
|
. = ALIGN(16);
|
|
PROVIDE(__global_pointer$ = . + 0x800);
|
|
*(.sdata .sdata.*)
|
|
*(.gnu.linkonce.s.*)
|
|
. = ALIGN(16);
|
|
PROVIDE(_edata = .);
|
|
PROVIDE(edata = .);
|
|
} >dsram AT>isram
|
|
|
|
.bss :
|
|
{
|
|
PROVIDE(__bss_start = .);
|
|
*(.sbss*)
|
|
*(.sbss.*)
|
|
*(.dynsbss)
|
|
*(.scommon)
|
|
*(.bss)
|
|
*(.bss.*)
|
|
*(.dynbss)
|
|
*(.gnu.linkonce.sb.*)
|
|
*(.gnu.linkonce.b.*)
|
|
*(COMMON)
|
|
. = ALIGN(16);
|
|
PROVIDE(_end = .);
|
|
PROVIDE(end = .);
|
|
} >dsram AT>dsram
|
|
|
|
PROVIDE(__heap_start = _end);
|
|
|
|
.stack ORIGIN(dsram) + LENGTH(dsram) - __stack_size :
|
|
{
|
|
PROVIDE(_heap_end = .);
|
|
PROVIDE(__heap_end = _heap_end);
|
|
PROVIDE(__heap_size = __heap_end - __heap_start);
|
|
. = __stack_size;
|
|
PROVIDE(_stack = .);
|
|
} >dsram AT>dsram
|
|
}
|