Statistics
| Branch: | Revision:

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);