1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
/*
linker script for Philips LPC2138
*/
ENTRY(reset_vector)
MEMORY
{
/* internal Flash without Bootloader sectors */
CODE (rx) : ORIGIN = 0x00000000, LENGTH = 0x0007D000
/* reserve space for soft copy of exception vectors */
VECT (rw) : ORIGIN = 0x40000000, LENGTH = 0x00000040
DATA (rw) : ORIGIN = 0x40000040, LENGTH = 0x00007FC0
}
SECTIONS
{
PROVIDE (PxPrepareInit = 0);
.rom_vectors :
{
KEEP (*(.vectors))
} > CODE =0
.text :
{
stext = ABSOLUTE(.); PROVIDE (__stext = ABSOLUTE(.));
*(.text*)
/* C++ stuff. */
*(.gcc_except_table)
*(.eh_frame)
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
*(.gnu.linkonce.t*)
*(.init)
*(.glue_7)
*(.glue_7t)
*(.fixup)
*(.got)
*(.fini)
} > CODE etext = .; PROVIDE (__etext = .);
.rodata :
{
*(.rodata*) *(.rodata.*) *(.toc) *(.gnu.linkonce.r*)
. = ALIGN (4);
} > CODE
.rodata1 :
{
*(.rodata1)
. = ALIGN (4);
} > CODE
.jcr :
{
KEEP (*(.jcr))
. = ALIGN (4);
} > CODE
.data :
{
__ram_data_start = ABSOLUTE (.);
*(.data*) *(.gnu.linkonce.d*)
*(.data1) _GOT1_START_ = ABSOLUTE (.);
*(.got1) _GOT1_END_ = ABSOLUTE (.); _GOT2_START_ = ABSOLUTE (.);
*(.got2) _GOT2_END_ = ABSOLUTE (.);
. = ALIGN (4);
__DEVTAB__ = ABSOLUTE (.);
KEEP (*(SORT (.devtab*))) __DEVTAB_END__ = ABSOLUTE (.);
__NETDEVTAB__ = ABSOLUTE (.);
KEEP (*(SORT (.netdevtab*))) __NETDEVTAB_END__ = ABSOLUTE (.);
__CTOR_LIST__ = ABSOLUTE (.);
KEEP (*(SORT (.ctors*))) __CTOR_END__ = ABSOLUTE (.);
__DTOR_LIST__ = ABSOLUTE (.);
KEEP (*(SORT (.dtors*))) __DTOR_END__ = ABSOLUTE (.);
*(.dynamic)
*(.sdata*)
*(.sbss*)
} > DATA AT> CODE
__rom_data_start = LOADADDR (.data);
__ram_data_end = .; PROVIDE (__ram_data_end = .);
_edata = .; PROVIDE (edata = .); PROVIDE (__rom_data_end = LOADADDR (.data) + SIZEOF(.data));
.bss :
{
. = ALIGN (4);
__bss_start = ABSOLUTE (.);
*(.scommon)
*(.dynbss)
*(.bss*) *(.gnu.linkonce.b*)
*(COMMON)
__bss_end = ABSOLUTE (.);
} > DATA
. = ALIGN(4);
_end = .; PROVIDE (end = .); PROVIDE (__end__ = .); PROVIDE (__HEAP = .);
PROVIDE (__heap_end__ = . + 0x0040); PROVIDE (__HEAP_END = . + 0x0040);
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
.debug_info 0 : { *(.debug_info) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
}
|