linker.ld (507B)
1 OUTPUT_ARCH(riscv)
2 ENTRY(_start)
3
4 PROVIDE(__ram_size = 0x40000);
5 PROVIDE(__stack_size = 0x2000);
6 __heap_end = __ram_size - __stack_size;
7
8 SECTIONS {
9 . = 0;
10
11 .text : {
12 KEEP(*(.text.start))
13 *(.text .text.*)
14 }
15
16 .rodata : {
17 *(.rodata .rodata.* .srodata .srodata.*)
18 }
19
20 .data : {
21 *(.data .data.* .sdata .sdata.*)
22 }
23
24 .bss : {
25 *(.bss .bss.* .sbss .sbss.* COMMON)
26 }
27
28 . = ALIGN(8);
29 __heap_start = .;
30
31 /DISCARD/ : {
32 *
33 }
34
35 ASSERT(__heap_start + 64 <= __heap_end, "no room left for heap")
36 }