feat: optimize startup and linking
This commit is contained in:
90
sdk/software/examples/asm/script_matmul_fast.lds
Normal file
90
sdk/software/examples/asm/script_matmul_fast.lds
Normal file
@@ -0,0 +1,90 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user