Skip to content

Commit e82279b

Browse files
committed
[LPC11U35][GCC_CR] Added export functionality
1 parent 07db342 commit e82279b

File tree

10 files changed

+4285
-4
lines changed

10 files changed

+4285
-4
lines changed
Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
/* mbed - LPC11U35 linker script
2+
* Based linker script generated by Code Red Technologies Red Suite 4.1
3+
*/
4+
GROUP(libgcc.a libc_s.a libstdc++_s.a libm.a libcr_newlib_nohost.a crti.o crtn.o crtbegin.o crtend.o)
5+
6+
MEMORY
7+
{
8+
/* Define each memory region */
9+
MFlash32 (rx) : ORIGIN = 0x0, LENGTH = 0x10000 /* 64k */
10+
RamLoc8 (rwx) : ORIGIN = 0x100000C0, LENGTH = 0x1F40 /* 8k */
11+
RamUsb2 (rwx) : ORIGIN = 0x20004000, LENGTH = 0x800 /* 2k */
12+
}
13+
/* Define a symbol for the top of each memory region */
14+
__top_MFlash32 = 0x0 + 0x10000;
15+
__top_RamLoc8 = 0x10000000 + 0x1F40;
16+
__top_RamUsb2 = 0x20004000 + 0x800;
17+
18+
ENTRY(ResetISR)
19+
20+
SECTIONS
21+
{
22+
23+
/* MAIN TEXT SECTION */
24+
.text : ALIGN(4)
25+
{
26+
FILL(0xff)
27+
KEEP(*(.isr_vector))
28+
*(.text.ResetISR)
29+
. = 0x200;
30+
31+
/* Global Section Table */
32+
. = ALIGN(4) ;
33+
__section_table_start = .;
34+
__data_section_table = .;
35+
LONG(LOADADDR(.data));
36+
LONG( ADDR(.data)) ;
37+
LONG( SIZEOF(.data));
38+
LONG(LOADADDR(.data_RAM2));
39+
LONG( ADDR(.data_RAM2)) ;
40+
LONG( SIZEOF(.data_RAM2));
41+
__data_section_table_end = .;
42+
__bss_section_table = .;
43+
LONG( ADDR(.bss));
44+
LONG( SIZEOF(.bss));
45+
LONG( ADDR(.bss_RAM2));
46+
LONG( SIZEOF(.bss_RAM2));
47+
__bss_section_table_end = .;
48+
__section_table_end = . ;
49+
/* End of Global Section Table */
50+
51+
52+
*(.after_vectors*)
53+
54+
*(.text*)
55+
*(.rodata .rodata.*)
56+
. = ALIGN(4);
57+
58+
/* C++ constructors etc */
59+
. = ALIGN(4);
60+
KEEP(*(.init))
61+
62+
. = ALIGN(4);
63+
__preinit_array_start = .;
64+
KEEP (*(.preinit_array))
65+
__preinit_array_end = .;
66+
67+
. = ALIGN(4);
68+
__init_array_start = .;
69+
KEEP (*(SORT(.init_array.*)))
70+
KEEP (*(.init_array))
71+
__init_array_end = .;
72+
73+
KEEP(*(.fini));
74+
75+
. = ALIGN(0x4);
76+
KEEP (*crtbegin.o(.ctors))
77+
KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
78+
KEEP (*(SORT(.ctors.*)))
79+
KEEP (*crtend.o(.ctors))
80+
81+
. = ALIGN(0x4);
82+
KEEP (*crtbegin.o(.dtors))
83+
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
84+
KEEP (*(SORT(.dtors.*)))
85+
KEEP (*crtend.o(.dtors))
86+
/* End C++ */
87+
} > MFlash32
88+
89+
/*
90+
* for exception handling/unwind - some Newlib functions (in common
91+
* with C++ and STDC++) use this.
92+
*/
93+
.ARM.extab : ALIGN(4)
94+
{
95+
*(.ARM.extab* .gnu.linkonce.armextab.*)
96+
} > MFlash32
97+
__exidx_start = .;
98+
99+
.ARM.exidx : ALIGN(4)
100+
{
101+
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
102+
} > MFlash32
103+
__exidx_end = .;
104+
105+
_etext = .;
106+
107+
108+
.data_RAM2 : ALIGN(4)
109+
{
110+
FILL(0xff)
111+
*(.data.$RAM2*)
112+
*(.data.$RamUsb2*)
113+
. = ALIGN(4) ;
114+
} > RamUsb2 AT>MFlash32
115+
116+
/* MAIN DATA SECTION */
117+
118+
.uninit_RESERVED : ALIGN(4)
119+
{
120+
KEEP(*(.bss.$RESERVED*))
121+
} > RamLoc8
122+
123+
.data : ALIGN(4)
124+
{
125+
FILL(0xff)
126+
_data = .;
127+
*(vtable)
128+
*(.data*)
129+
. = ALIGN(4) ;
130+
_edata = .;
131+
} > RamLoc8 AT>MFlash32
132+
133+
134+
.bss_RAM2 : ALIGN(4)
135+
{
136+
*(.bss.$RAM2*)
137+
*(.bss.$RamUsb2*)
138+
. = ALIGN(4) ;
139+
} > RamUsb2
140+
141+
/* MAIN BSS SECTION */
142+
.bss : ALIGN(4)
143+
{
144+
_bss = .;
145+
*(.bss*)
146+
*(COMMON)
147+
. = ALIGN(4) ;
148+
_ebss = .;
149+
PROVIDE(end = .);
150+
__end__ = .;
151+
} > RamLoc8
152+
153+
PROVIDE(_pvHeapStart = .);
154+
PROVIDE(_vStackTop = __top_RamLoc8 - 0);
155+
}
Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
/* mbed - LPC11U35 linker script
2+
* Based linker script generated by Code Red Technologies Red Suite 4.1
3+
*/
4+
GROUP(libgcc.a libc_s.a libstdc++_s.a libm.a libcr_newlib_nohost.a crti.o crtn.o crtbegin.o crtend.o)
5+
6+
MEMORY
7+
{
8+
/* Define each memory region */
9+
MFlash32 (rx) : ORIGIN = 0x0, LENGTH = 0x10000 /* 64k */
10+
RamLoc8 (rwx) : ORIGIN = 0x100000C0, LENGTH = 0x1F40 /* 8k */
11+
RamUsb2 (rwx) : ORIGIN = 0x20004000, LENGTH = 0x800 /* 2k */
12+
}
13+
/* Define a symbol for the top of each memory region */
14+
__top_MFlash32 = 0x0 + 0x10000;
15+
__top_RamLoc8 = 0x10000000 + 0x1F40;
16+
__top_RamUsb2 = 0x20004000 + 0x800;
17+
18+
ENTRY(ResetISR)
19+
20+
SECTIONS
21+
{
22+
23+
/* MAIN TEXT SECTION */
24+
.text : ALIGN(4)
25+
{
26+
FILL(0xff)
27+
KEEP(*(.isr_vector))
28+
*(.text.ResetISR)
29+
. = 0x200;
30+
31+
/* Global Section Table */
32+
. = ALIGN(4) ;
33+
__section_table_start = .;
34+
__data_section_table = .;
35+
LONG(LOADADDR(.data));
36+
LONG( ADDR(.data)) ;
37+
LONG( SIZEOF(.data));
38+
LONG(LOADADDR(.data_RAM2));
39+
LONG( ADDR(.data_RAM2)) ;
40+
LONG( SIZEOF(.data_RAM2));
41+
__data_section_table_end = .;
42+
__bss_section_table = .;
43+
LONG( ADDR(.bss));
44+
LONG( SIZEOF(.bss));
45+
LONG( ADDR(.bss_RAM2));
46+
LONG( SIZEOF(.bss_RAM2));
47+
__bss_section_table_end = .;
48+
__section_table_end = . ;
49+
/* End of Global Section Table */
50+
51+
52+
*(.after_vectors*)
53+
54+
*(.text*)
55+
*(.rodata .rodata.*)
56+
. = ALIGN(4);
57+
58+
/* C++ constructors etc */
59+
. = ALIGN(4);
60+
KEEP(*(.init))
61+
62+
. = ALIGN(4);
63+
__preinit_array_start = .;
64+
KEEP (*(.preinit_array))
65+
__preinit_array_end = .;
66+
67+
. = ALIGN(4);
68+
__init_array_start = .;
69+
KEEP (*(SORT(.init_array.*)))
70+
KEEP (*(.init_array))
71+
__init_array_end = .;
72+
73+
KEEP(*(.fini));
74+
75+
. = ALIGN(0x4);
76+
KEEP (*crtbegin.o(.ctors))
77+
KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
78+
KEEP (*(SORT(.ctors.*)))
79+
KEEP (*crtend.o(.ctors))
80+
81+
. = ALIGN(0x4);
82+
KEEP (*crtbegin.o(.dtors))
83+
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
84+
KEEP (*(SORT(.dtors.*)))
85+
KEEP (*crtend.o(.dtors))
86+
/* End C++ */
87+
} > MFlash32
88+
89+
/*
90+
* for exception handling/unwind - some Newlib functions (in common
91+
* with C++ and STDC++) use this.
92+
*/
93+
.ARM.extab : ALIGN(4)
94+
{
95+
*(.ARM.extab* .gnu.linkonce.armextab.*)
96+
} > MFlash32
97+
__exidx_start = .;
98+
99+
.ARM.exidx : ALIGN(4)
100+
{
101+
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
102+
} > MFlash32
103+
__exidx_end = .;
104+
105+
_etext = .;
106+
107+
108+
.data_RAM2 : ALIGN(4)
109+
{
110+
FILL(0xff)
111+
*(.data.$RAM2*)
112+
*(.data.$RamUsb2*)
113+
. = ALIGN(4) ;
114+
} > RamUsb2 AT>MFlash32
115+
116+
/* MAIN DATA SECTION */
117+
118+
.uninit_RESERVED : ALIGN(4)
119+
{
120+
KEEP(*(.bss.$RESERVED*))
121+
} > RamLoc8
122+
123+
.data : ALIGN(4)
124+
{
125+
FILL(0xff)
126+
_data = .;
127+
*(vtable)
128+
*(.data*)
129+
. = ALIGN(4) ;
130+
_edata = .;
131+
} > RamLoc8 AT>MFlash32
132+
133+
134+
.bss_RAM2 : ALIGN(4)
135+
{
136+
*(.bss.$RAM2*)
137+
*(.bss.$RamUsb2*)
138+
. = ALIGN(4) ;
139+
} > RamUsb2
140+
141+
/* MAIN BSS SECTION */
142+
.bss : ALIGN(4)
143+
{
144+
_bss = .;
145+
*(.bss*)
146+
*(COMMON)
147+
. = ALIGN(4) ;
148+
_ebss = .;
149+
PROVIDE(end = .);
150+
__end__ = .;
151+
} > RamLoc8
152+
153+
PROVIDE(_pvHeapStart = .);
154+
PROVIDE(_vStackTop = __top_RamLoc8 - 0);
155+
}

workspace_tools/export/codered.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
class CodeRed(Exporter):
2222
NAME = 'CodeRed'
23-
TARGETS = ['LPC1768', 'LPC4088','LPC1114']
23+
TARGETS = ['LPC1768', 'LPC4088','LPC1114','LPC11U35_401','LPC11U35_501']
2424
TOOLCHAIN = 'GCC_CR'
2525

2626
def generate(self):

0 commit comments

Comments
 (0)