root / tests / xtensa / linker.ld @ 7d890b40
History | View | Annotate | Download (2.2 kB)
1 | 7d890b40 | Max Filippov | OUTPUT_FORMAT("elf32-xtensa-le") |
---|---|---|---|
2 | 7d890b40 | Max Filippov | ENTRY(_start) |
3 | 7d890b40 | Max Filippov | |
4 | 7d890b40 | Max Filippov | __DYNAMIC = 0; |
5 | 7d890b40 | Max Filippov | |
6 | 7d890b40 | Max Filippov | MEMORY { |
7 | 7d890b40 | Max Filippov | ram : ORIGIN = 0xd0000000, LENGTH = 0x08000000 /* 128M */ |
8 | 7d890b40 | Max Filippov | rom : ORIGIN = 0xfe000000, LENGTH = 0x00001000 /* 4k */ |
9 | 7d890b40 | Max Filippov | } |
10 | 7d890b40 | Max Filippov | |
11 | 7d890b40 | Max Filippov | SECTIONS |
12 | 7d890b40 | Max Filippov | { |
13 | 7d890b40 | Max Filippov | .init : |
14 | 7d890b40 | Max Filippov | { |
15 | 7d890b40 | Max Filippov | *(.init) |
16 | 7d890b40 | Max Filippov | *(.init.*) |
17 | 7d890b40 | Max Filippov | } > rom |
18 | 7d890b40 | Max Filippov | |
19 | 7d890b40 | Max Filippov | .vector : |
20 | 7d890b40 | Max Filippov | { |
21 | 7d890b40 | Max Filippov | . = 0x00000000; |
22 | 7d890b40 | Max Filippov | *(.vector.window_overflow_4) |
23 | 7d890b40 | Max Filippov | *(.vector.window_overflow_4.*) |
24 | 7d890b40 | Max Filippov | . = 0x00000040; |
25 | 7d890b40 | Max Filippov | *(.vector.window_underflow_4) |
26 | 7d890b40 | Max Filippov | *(.vector.window_underflow_4.*) |
27 | 7d890b40 | Max Filippov | . = 0x00000080; |
28 | 7d890b40 | Max Filippov | *(.vector.window_overflow_8) |
29 | 7d890b40 | Max Filippov | *(.vector.window_overflow_8.*) |
30 | 7d890b40 | Max Filippov | . = 0x000000c0; |
31 | 7d890b40 | Max Filippov | *(.vector.window_underflow_8) |
32 | 7d890b40 | Max Filippov | *(.vector.window_underflow_8.*) |
33 | 7d890b40 | Max Filippov | . = 0x00000100; |
34 | 7d890b40 | Max Filippov | *(.vector.window_overflow_12) |
35 | 7d890b40 | Max Filippov | *(.vector.window_overflow_12.*) |
36 | 7d890b40 | Max Filippov | . = 0x00000140; |
37 | 7d890b40 | Max Filippov | *(.vector.window_underflow_12) |
38 | 7d890b40 | Max Filippov | *(.vector.window_underflow_12.*) |
39 | 7d890b40 | Max Filippov | |
40 | 7d890b40 | Max Filippov | . = 0x00000180; |
41 | 7d890b40 | Max Filippov | *(.vector.level2) |
42 | 7d890b40 | Max Filippov | *(.vector.level2.*) |
43 | 7d890b40 | Max Filippov | . = 0x000001c0; |
44 | 7d890b40 | Max Filippov | *(.vector.level3) |
45 | 7d890b40 | Max Filippov | *(.vector.level3.*) |
46 | 7d890b40 | Max Filippov | . = 0x00000200; |
47 | 7d890b40 | Max Filippov | *(.vector.level4) |
48 | 7d890b40 | Max Filippov | *(.vector.level4.*) |
49 | 7d890b40 | Max Filippov | . = 0x00000240; |
50 | 7d890b40 | Max Filippov | *(.vector.level5) |
51 | 7d890b40 | Max Filippov | *(.vector.level5.*) |
52 | 7d890b40 | Max Filippov | . = 0x00000280; |
53 | 7d890b40 | Max Filippov | *(.vector.level6) |
54 | 7d890b40 | Max Filippov | *(.vector.level6.*) |
55 | 7d890b40 | Max Filippov | . = 0x000002c0; |
56 | 7d890b40 | Max Filippov | *(.vector.level7) |
57 | 7d890b40 | Max Filippov | *(.vector.level7.*) |
58 | 7d890b40 | Max Filippov | |
59 | 7d890b40 | Max Filippov | . = 0x00000300; |
60 | 7d890b40 | Max Filippov | *(.vector.kernel) |
61 | 7d890b40 | Max Filippov | *(.vector.kernel.*) |
62 | 7d890b40 | Max Filippov | . = 0x00000340; |
63 | 7d890b40 | Max Filippov | *(.vector.user) |
64 | 7d890b40 | Max Filippov | *(.vector.user.*) |
65 | 7d890b40 | Max Filippov | . = 0x000003c0; |
66 | 7d890b40 | Max Filippov | *(.vector.double) |
67 | 7d890b40 | Max Filippov | *(.vector.double.*) |
68 | 7d890b40 | Max Filippov | } > ram |
69 | 7d890b40 | Max Filippov | |
70 | 7d890b40 | Max Filippov | .text : |
71 | 7d890b40 | Max Filippov | { |
72 | 7d890b40 | Max Filippov | _ftext = .; |
73 | 7d890b40 | Max Filippov | *(.text .stub .text.* .gnu.linkonce.t.* .literal .literal.*) |
74 | 7d890b40 | Max Filippov | _etext = .; |
75 | 7d890b40 | Max Filippov | } > ram |
76 | 7d890b40 | Max Filippov | |
77 | 7d890b40 | Max Filippov | .rodata : |
78 | 7d890b40 | Max Filippov | { |
79 | 7d890b40 | Max Filippov | . = ALIGN(4); |
80 | 7d890b40 | Max Filippov | _frodata = .; |
81 | 7d890b40 | Max Filippov | *(.rodata .rodata.* .gnu.linkonce.r.*) |
82 | 7d890b40 | Max Filippov | *(.rodata1) |
83 | 7d890b40 | Max Filippov | _erodata = .; |
84 | 7d890b40 | Max Filippov | } > ram |
85 | 7d890b40 | Max Filippov | |
86 | 7d890b40 | Max Filippov | .data : |
87 | 7d890b40 | Max Filippov | { |
88 | 7d890b40 | Max Filippov | . = ALIGN(4); |
89 | 7d890b40 | Max Filippov | _fdata = .; |
90 | 7d890b40 | Max Filippov | *(.data .data.* .gnu.linkonce.d.*) |
91 | 7d890b40 | Max Filippov | *(.data1) |
92 | 7d890b40 | Max Filippov | _gp = ALIGN(16); |
93 | 7d890b40 | Max Filippov | *(.sdata .sdata.* .gnu.linkonce.s.*) |
94 | 7d890b40 | Max Filippov | _edata = .; |
95 | 7d890b40 | Max Filippov | } > ram |
96 | 7d890b40 | Max Filippov | |
97 | 7d890b40 | Max Filippov | .bss : |
98 | 7d890b40 | Max Filippov | { |
99 | 7d890b40 | Max Filippov | . = ALIGN(4); |
100 | 7d890b40 | Max Filippov | _fbss = .; |
101 | 7d890b40 | Max Filippov | *(.dynsbss) |
102 | 7d890b40 | Max Filippov | *(.sbss .sbss.* .gnu.linkonce.sb.*) |
103 | 7d890b40 | Max Filippov | *(.scommon) |
104 | 7d890b40 | Max Filippov | *(.dynbss) |
105 | 7d890b40 | Max Filippov | *(.bss .bss.* .gnu.linkonce.b.*) |
106 | 7d890b40 | Max Filippov | *(COMMON) |
107 | 7d890b40 | Max Filippov | _ebss = .; |
108 | 7d890b40 | Max Filippov | _end = .; |
109 | 7d890b40 | Max Filippov | } > ram |
110 | 7d890b40 | Max Filippov | } |
111 | 7d890b40 | Max Filippov | |
112 | 7d890b40 | Max Filippov | PROVIDE(_fstack = ORIGIN(ram) + LENGTH(ram) - 4); |