1 | /*
|
---|
2 | * @(#) $Id$
|
---|
3 | */
|
---|
4 |
|
---|
5 | MEMORY
|
---|
6 | {
|
---|
7 | /*
|
---|
8 | * Memory with CPU cache.
|
---|
9 | *6M CPU SRAM
|
---|
10 | */
|
---|
11 | ram (wxa!ri) : ORIGIN = 0x80000000, LENGTH = (6 * 1024 * 1024)
|
---|
12 | /*
|
---|
13 | * Memory without CPU cache
|
---|
14 | * 6M CPU SRAM
|
---|
15 | */
|
---|
16 | ram_nocache (wxa!ri) : ORIGIN = 0x40000000, LENGTH = (6 * 1024 * 1024)
|
---|
17 | }
|
---|
18 |
|
---|
19 | OUTPUT_ARCH(riscv)
|
---|
20 |
|
---|
21 | PROVIDE(hardware_init_hook = 0);
|
---|
22 | PROVIDE(software_init_hook = 0);
|
---|
23 | PROVIDE(software_term_hook = 0);
|
---|
24 | PROVIDE(__idata_start = 0);
|
---|
25 | PROVIDE(__idata_end = 0);
|
---|
26 | STARTUP(start.o)
|
---|
27 |
|
---|
28 | SECTIONS
|
---|
29 | {
|
---|
30 | __stack_size = DEFINED(__stack_size) ? __stack_size : 8K;
|
---|
31 |
|
---|
32 | .init :
|
---|
33 | {
|
---|
34 | KEEP (*(.init))
|
---|
35 | }>ram
|
---|
36 | .text :
|
---|
37 | {
|
---|
38 | __text = . ;
|
---|
39 | *(.text .stub .text.* .gnu.linkonce.t.*)
|
---|
40 |
|
---|
41 | }>ram
|
---|
42 | .fini :
|
---|
43 | {
|
---|
44 | KEEP (*(.fini))
|
---|
45 | }>ram
|
---|
46 | _etext = . ;
|
---|
47 | PROVIDE (etext = .) ;
|
---|
48 | .rodata :
|
---|
49 | {
|
---|
50 | *(.rodata .rodata.* .gnu.linkonce.r.*)
|
---|
51 | }>ram
|
---|
52 | . = ALIGN(8);
|
---|
53 | .data :
|
---|
54 | {
|
---|
55 | __data_start = . ;
|
---|
56 | /* Writable data segment (.data segment) */
|
---|
57 | *(.data .data.*)
|
---|
58 | *(.sdata .sdata.* .sdata2 .sdata2.*)
|
---|
59 | . = ALIGN(8);
|
---|
60 | PROVIDE( __global_pointer$ = ABSOLUTE(.) + 0x800);
|
---|
61 | }>ram
|
---|
62 | .eh_frame : { KEEP (*(.eh_frame)) }>ram
|
---|
63 | .gcc_except_table : { *(.gcc_except_table .gcc_except_table.*) }>ram
|
---|
64 | .ctors :
|
---|
65 | {
|
---|
66 | KEEP (*crtbegin.o(.ctors))
|
---|
67 | KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors))
|
---|
68 | KEEP (*(SORT(.ctors.*)))
|
---|
69 | KEEP (*(.ctors))
|
---|
70 | }>ram
|
---|
71 | .dtors :
|
---|
72 | {
|
---|
73 | KEEP (*crtbegin.o(.dtors))
|
---|
74 | KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors))
|
---|
75 | KEEP (*(SORT(.dtors.*)))
|
---|
76 | KEEP (*(.dtors))
|
---|
77 | }>ram
|
---|
78 | _edata = . ;
|
---|
79 | PROVIDE (edata = .) ;
|
---|
80 | . = ALIGN(8) ;
|
---|
81 | __bss_start = . ;
|
---|
82 | _bss = .;
|
---|
83 | .bss :
|
---|
84 | {
|
---|
85 | *(.bss .bss.*)
|
---|
86 | *(.sbss .sbss.* .sbss2 .sbss2.*)
|
---|
87 | *(COMMON)
|
---|
88 | }>ram
|
---|
89 | _end = . ;
|
---|
90 | __bss_end = . ;
|
---|
91 | _ebss = . ;
|
---|
92 | .stack (NOLOAD) :
|
---|
93 | {
|
---|
94 | *(.stack)
|
---|
95 | }>ram
|
---|
96 | .heap (NOLOAD) :
|
---|
97 | {
|
---|
98 | PROVIDE (_heap_start = .) ;
|
---|
99 | *(.heap)
|
---|
100 | }>ram
|
---|
101 | PROVIDE (_heap_end = .) ;
|
---|
102 | PROVIDE (end = .) ;
|
---|
103 | .comment 0 : { *(.comment) }
|
---|
104 | .debug 0 : { *(.debug) }
|
---|
105 | .line 0 : { *(.line) }
|
---|
106 | .debug_srcinfo 0 : { *(.debug_srcinfo) }
|
---|
107 | .debug_sfnames 0 : { *(.debug_sfnames) }
|
---|
108 | .debug_aranges 0 : { *(.debug_aranges) }
|
---|
109 | .debug_pubnames 0 : { *(.debug_pubnames) }
|
---|
110 | }
|
---|