aboutsummaryrefslogtreecommitdiff
path: root/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc')
-rw-r--r--lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/LPC55S69_cm33_core0_flash.ld234
-rw-r--r--lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/LPC55S69_cm33_core0_flash_ns.ld234
-rw-r--r--lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/LPC55S69_cm33_core0_flash_s.ld245
-rw-r--r--lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/LPC55S69_cm33_core0_ram.ld234
-rw-r--r--lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/LPC55S69_cm33_core1_flash.ld224
-rw-r--r--lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/LPC55S69_cm33_core1_ram.ld224
-rw-r--r--lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/LPC55S69_cm33_core1_ram_s.ld224
-rw-r--r--lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/libpower_hardabi.abin0 -> 65694 bytes
-rw-r--r--lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/libpower_hardabi_s.abin0 -> 65706 bytes
-rw-r--r--lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/libpower_soft.abin0 -> 66002 bytes
-rw-r--r--lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/libpower_softabi.abin0 -> 65694 bytes
-rw-r--r--lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/libpower_softabi_s.abin0 -> 65702 bytes
-rw-r--r--lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/startup_LPC55S69_cm33_core0.S875
-rw-r--r--lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/startup_LPC55S69_cm33_core1.S875
14 files changed, 3369 insertions, 0 deletions
diff --git a/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/LPC55S69_cm33_core0_flash.ld b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/LPC55S69_cm33_core0_flash.ld
new file mode 100644
index 000000000..559de551e
--- /dev/null
+++ b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/LPC55S69_cm33_core0_flash.ld
@@ -0,0 +1,234 @@
1/*
2** ###################################################################
3** Processors: LPC55S69JBD100_cm33_core0
4** LPC55S69JBD64_cm33_core0
5** LPC55S69JEV98_cm33_core0
6**
7** Compiler: GNU C Compiler
8** Reference manual: LPC55S6x/LPC55S2x/LPC552x User manual(UM11126) Rev.1.3 16 May 2019
9** Version: rev. 1.1, 2019-05-16
10** Build: b200722
11**
12** Abstract:
13** Linker file for the GNU C Compiler
14**
15** Copyright 2016 Freescale Semiconductor, Inc.
16** Copyright 2016-2020 NXP
17** All rights reserved.
18**
19** SPDX-License-Identifier: BSD-3-Clause
20**
21** http: www.nxp.com
22** mail: [email protected]
23**
24** ###################################################################
25*/
26
27
28
29/* Entry Point */
30ENTRY(Reset_Handler)
31
32HEAP_SIZE = DEFINED(__heap_size__) ? __heap_size__ : 0x0400;
33STACK_SIZE = DEFINED(__stack_size__) ? __stack_size__ : 0x0800;
34RPMSG_SHMEM_SIZE = DEFINED(__use_shmem__) ? 0x1800 : 0;
35
36/* Specify the memory areas */
37MEMORY
38{
39 m_interrupts (RX) : ORIGIN = 0x00000000, LENGTH = 0x00000200
40 m_text (RX) : ORIGIN = 0x00000200, LENGTH = 0x00071E00
41 m_core1_image (RX) : ORIGIN = 0x00072000, LENGTH = 0x00026000
42 m_data (RW) : ORIGIN = 0x20000000, LENGTH = 0x00033000 - RPMSG_SHMEM_SIZE
43 rpmsg_sh_mem (RW) : ORIGIN = 0x20033000 - RPMSG_SHMEM_SIZE, LENGTH = RPMSG_SHMEM_SIZE
44 m_usb_sram (RW) : ORIGIN = 0x40100000, LENGTH = 0x00004000
45}
46
47/* Define output sections */
48SECTIONS
49{
50 /* section for storing the secondary core image */
51 .core1_code :
52 {
53 . = ALIGN(4) ;
54 KEEP (*(.core1_code))
55 *(.core1_code*)
56 . = ALIGN(4) ;
57 } > m_core1_image
58
59 /* NOINIT section for rpmsg_sh_mem */
60 .noinit_rpmsg_sh_mem (NOLOAD) : ALIGN(4)
61 {
62 __RPMSG_SH_MEM_START__ = .;
63 *(.noinit.$rpmsg_sh_mem*)
64 . = ALIGN(4) ;
65 __RPMSG_SH_MEM_END__ = .;
66 } > rpmsg_sh_mem
67
68 /* The startup code goes first into internal flash */
69 .interrupts :
70 {
71 . = ALIGN(4);
72 KEEP(*(.isr_vector)) /* Startup code */
73 . = ALIGN(4);
74 } > m_interrupts
75
76 /* The program code and other data goes into internal flash */
77 .text :
78 {
79 . = ALIGN(4);
80 *(.text) /* .text sections (code) */
81 *(.text*) /* .text* sections (code) */
82 *(.rodata) /* .rodata sections (constants, strings, etc.) */
83 *(.rodata*) /* .rodata* sections (constants, strings, etc.) */
84 *(.glue_7) /* glue arm to thumb code */
85 *(.glue_7t) /* glue thumb to arm code */
86 *(.eh_frame)
87 KEEP (*(.init))
88 KEEP (*(.fini))
89 . = ALIGN(4);
90 } > m_text
91
92 .ARM.extab :
93 {
94 *(.ARM.extab* .gnu.linkonce.armextab.*)
95 } > m_text
96
97 .ARM :
98 {
99 __exidx_start = .;
100 *(.ARM.exidx*)
101 __exidx_end = .;
102 } > m_text
103
104 .ctors :
105 {
106 __CTOR_LIST__ = .;
107 /* gcc uses crtbegin.o to find the start of
108 the constructors, so we make sure it is
109 first. Because this is a wildcard, it
110 doesn't matter if the user does not
111 actually link against crtbegin.o; the
112 linker won't look for a file to match a
113 wildcard. The wildcard also means that it
114 doesn't matter which directory crtbegin.o
115 is in. */
116 KEEP (*crtbegin.o(.ctors))
117 KEEP (*crtbegin?.o(.ctors))
118 /* We don't want to include the .ctor section from
119 from the crtend.o file until after the sorted ctors.
120 The .ctor section from the crtend file contains the
121 end of ctors marker and it must be last */
122 KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors))
123 KEEP (*(SORT(.ctors.*)))
124 KEEP (*(.ctors))
125 __CTOR_END__ = .;
126 } > m_text
127
128 .dtors :
129 {
130 __DTOR_LIST__ = .;
131 KEEP (*crtbegin.o(.dtors))
132 KEEP (*crtbegin?.o(.dtors))
133 KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors))
134 KEEP (*(SORT(.dtors.*)))
135 KEEP (*(.dtors))
136 __DTOR_END__ = .;
137 } > m_text
138
139 .preinit_array :
140 {
141 PROVIDE_HIDDEN (__preinit_array_start = .);
142 KEEP (*(.preinit_array*))
143 PROVIDE_HIDDEN (__preinit_array_end = .);
144 } > m_text
145
146 .init_array :
147 {
148 PROVIDE_HIDDEN (__init_array_start = .);
149 KEEP (*(SORT(.init_array.*)))
150 KEEP (*(.init_array*))
151 PROVIDE_HIDDEN (__init_array_end = .);
152 } > m_text
153
154 .fini_array :
155 {
156 PROVIDE_HIDDEN (__fini_array_start = .);
157 KEEP (*(SORT(.fini_array.*)))
158 KEEP (*(.fini_array*))
159 PROVIDE_HIDDEN (__fini_array_end = .);
160 } > m_text
161
162 __etext = .; /* define a global symbol at end of code */
163 __DATA_ROM = .; /* Symbol is used by startup for data initialization */
164
165 .data : AT(__DATA_ROM)
166 {
167 . = ALIGN(4);
168 __DATA_RAM = .;
169 __data_start__ = .; /* create a global symbol at data start */
170 *(.ramfunc*) /* for functions in ram */
171 *(.data) /* .data sections */
172 *(.data*) /* .data* sections */
173 KEEP(*(.jcr*))
174 . = ALIGN(4);
175 __data_end__ = .; /* define a global symbol at data end */
176 } > m_data
177
178 __DATA_END = __DATA_ROM + (__data_end__ - __data_start__);
179 text_end = ORIGIN(m_text) + LENGTH(m_text);
180 ASSERT(__DATA_END <= text_end, "region m_text overflowed with text and data")
181
182 /* Uninitialized data section */
183 .bss :
184 {
185 /* This is used by the startup in order to initialize the .bss section */
186 . = ALIGN(4);
187 __START_BSS = .;
188 __bss_start__ = .;
189 *(.bss)
190 *(.bss*)
191 *(COMMON)
192 . = ALIGN(4);
193 __bss_end__ = .;
194 __END_BSS = .;
195 } > m_data
196
197 .heap :
198 {
199 . = ALIGN(8);
200 __end__ = .;
201 PROVIDE(end = .);
202 __HeapBase = .;
203 . += HEAP_SIZE;
204 __HeapLimit = .;
205 __heap_limit = .; /* Add for _sbrk */
206 } > m_data
207
208 .stack :
209 {
210 . = ALIGN(8);
211 . += STACK_SIZE;
212 } > m_data
213
214 m_usb_bdt (NOLOAD) :
215 {
216 . = ALIGN(512);
217 *(m_usb_bdt)
218 } > m_usb_sram
219
220 m_usb_global (NOLOAD) :
221 {
222 *(m_usb_global)
223 } > m_usb_sram
224
225 /* Initializes stack on the end of block */
226 __StackTop = ORIGIN(m_data) + LENGTH(m_data);
227 __StackLimit = __StackTop - STACK_SIZE;
228 PROVIDE(__stack = __StackTop);
229
230 .ARM.attributes 0 : { *(.ARM.attributes) }
231
232 ASSERT(__StackLimit >= __HeapLimit, "region m_data overflowed with stack and heap")
233}
234
diff --git a/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/LPC55S69_cm33_core0_flash_ns.ld b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/LPC55S69_cm33_core0_flash_ns.ld
new file mode 100644
index 000000000..c0e231165
--- /dev/null
+++ b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/LPC55S69_cm33_core0_flash_ns.ld
@@ -0,0 +1,234 @@
1/*
2** ###################################################################
3** Processors: LPC55S69JBD100_cm33_core0
4** LPC55S69JBD64_cm33_core0
5** LPC55S69JEV98_cm33_core0
6**
7** Compiler: GNU C Compiler
8** Reference manual: LPC55S6x/LPC55S2x/LPC552x User manual(UM11126) Rev.1.3 16 May 2019
9** Version: rev. 1.1, 2019-05-16
10** Build: b190926
11**
12** Abstract:
13** Linker file for the GNU C Compiler
14**
15** Copyright 2016 Freescale Semiconductor, Inc.
16** Copyright 2016-2019 NXP
17** All rights reserved.
18**
19** SPDX-License-Identifier: BSD-3-Clause
20**
21** http: www.nxp.com
22** mail: [email protected]
23**
24** ###################################################################
25*/
26
27
28
29/* Entry Point */
30ENTRY(Reset_Handler)
31
32HEAP_SIZE = DEFINED(__heap_size__) ? __heap_size__ : 0x0400;
33STACK_SIZE = DEFINED(__stack_size__) ? __stack_size__ : 0x0800;
34RPMSG_SHMEM_SIZE = DEFINED(__use_shmem__) ? 0x1800 : 0;
35
36/* Specify the memory areas */
37MEMORY
38{
39 m_interrupts (RX) : ORIGIN = 0x00010000, LENGTH = 0x00000200
40 m_text (RX) : ORIGIN = 0x00010200, LENGTH = 0x00061E00
41 m_core1_image (RX) : ORIGIN = 0x00072000, LENGTH = 0x00026000
42 m_data (RW) : ORIGIN = 0x20008000, LENGTH = 0x0002A800 - RPMSG_SHMEM_SIZE
43 rpmsg_sh_mem (RW) : ORIGIN = 0x20033000 - RPMSG_SHMEM_SIZE, LENGTH = RPMSG_SHMEM_SIZE
44 m_usb_sram (RW) : ORIGIN = 0x40100000, LENGTH = 0x00004000
45}
46
47/* Define output sections */
48SECTIONS
49{
50 /* section for storing the secondary core image */
51 .core1_code :
52 {
53 . = ALIGN(4) ;
54 KEEP (*(.core1_code))
55 *(.core1_code*)
56 . = ALIGN(4) ;
57 } > m_core1_image
58
59 /* NOINIT section for rpmsg_sh_mem */
60 .noinit_rpmsg_sh_mem (NOLOAD) : ALIGN(4)
61 {
62 __RPMSG_SH_MEM_START__ = .;
63 *(.noinit.$rpmsg_sh_mem*)
64 . = ALIGN(4) ;
65 __RPMSG_SH_MEM_END__ = .;
66 } > rpmsg_sh_mem
67
68 /* The startup code goes first into internal flash */
69 .interrupts :
70 {
71 . = ALIGN(4);
72 KEEP(*(.isr_vector)) /* Startup code */
73 . = ALIGN(4);
74 } > m_interrupts
75
76 /* The program code and other data goes into internal flash */
77 .text :
78 {
79 . = ALIGN(4);
80 *(.text) /* .text sections (code) */
81 *(.text*) /* .text* sections (code) */
82 *(.rodata) /* .rodata sections (constants, strings, etc.) */
83 *(.rodata*) /* .rodata* sections (constants, strings, etc.) */
84 *(.glue_7) /* glue arm to thumb code */
85 *(.glue_7t) /* glue thumb to arm code */
86 *(.eh_frame)
87 KEEP (*(.init))
88 KEEP (*(.fini))
89 . = ALIGN(4);
90 } > m_text
91
92 .ARM.extab :
93 {
94 *(.ARM.extab* .gnu.linkonce.armextab.*)
95 } > m_text
96
97 .ARM :
98 {
99 __exidx_start = .;
100 *(.ARM.exidx*)
101 __exidx_end = .;
102 } > m_text
103
104 .ctors :
105 {
106 __CTOR_LIST__ = .;
107 /* gcc uses crtbegin.o to find the start of
108 the constructors, so we make sure it is
109 first. Because this is a wildcard, it
110 doesn't matter if the user does not
111 actually link against crtbegin.o; the
112 linker won't look for a file to match a
113 wildcard. The wildcard also means that it
114 doesn't matter which directory crtbegin.o
115 is in. */
116 KEEP (*crtbegin.o(.ctors))
117 KEEP (*crtbegin?.o(.ctors))
118 /* We don't want to include the .ctor section from
119 from the crtend.o file until after the sorted ctors.
120 The .ctor section from the crtend file contains the
121 end of ctors marker and it must be last */
122 KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors))
123 KEEP (*(SORT(.ctors.*)))
124 KEEP (*(.ctors))
125 __CTOR_END__ = .;
126 } > m_text
127
128 .dtors :
129 {
130 __DTOR_LIST__ = .;
131 KEEP (*crtbegin.o(.dtors))
132 KEEP (*crtbegin?.o(.dtors))
133 KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors))
134 KEEP (*(SORT(.dtors.*)))
135 KEEP (*(.dtors))
136 __DTOR_END__ = .;
137 } > m_text
138
139 .preinit_array :
140 {
141 PROVIDE_HIDDEN (__preinit_array_start = .);
142 KEEP (*(.preinit_array*))
143 PROVIDE_HIDDEN (__preinit_array_end = .);
144 } > m_text
145
146 .init_array :
147 {
148 PROVIDE_HIDDEN (__init_array_start = .);
149 KEEP (*(SORT(.init_array.*)))
150 KEEP (*(.init_array*))
151 PROVIDE_HIDDEN (__init_array_end = .);
152 } > m_text
153
154 .fini_array :
155 {
156 PROVIDE_HIDDEN (__fini_array_start = .);
157 KEEP (*(SORT(.fini_array.*)))
158 KEEP (*(.fini_array*))
159 PROVIDE_HIDDEN (__fini_array_end = .);
160 } > m_text
161
162 __etext = .; /* define a global symbol at end of code */
163 __DATA_ROM = .; /* Symbol is used by startup for data initialization */
164
165 .data : AT(__DATA_ROM)
166 {
167 . = ALIGN(4);
168 __DATA_RAM = .;
169 __data_start__ = .; /* create a global symbol at data start */
170 *(.ramfunc*) /* for functions in ram */
171 *(.data) /* .data sections */
172 *(.data*) /* .data* sections */
173 KEEP(*(.jcr*))
174 . = ALIGN(4);
175 __data_end__ = .; /* define a global symbol at data end */
176 } > m_data
177
178 __DATA_END = __DATA_ROM + (__data_end__ - __data_start__);
179 text_end = ORIGIN(m_text) + LENGTH(m_text);
180 ASSERT(__DATA_END <= text_end, "region m_text overflowed with text and data")
181
182 /* Uninitialized data section */
183 .bss :
184 {
185 /* This is used by the startup in order to initialize the .bss section */
186 . = ALIGN(4);
187 __START_BSS = .;
188 __bss_start__ = .;
189 *(.bss)
190 *(.bss*)
191 *(COMMON)
192 . = ALIGN(4);
193 __bss_end__ = .;
194 __END_BSS = .;
195 } > m_data
196
197 .heap :
198 {
199 . = ALIGN(8);
200 __end__ = .;
201 PROVIDE(end = .);
202 __HeapBase = .;
203 . += HEAP_SIZE;
204 __HeapLimit = .;
205 __heap_limit = .; /* Add for _sbrk */
206 } > m_data
207
208 .stack :
209 {
210 . = ALIGN(8);
211 . += STACK_SIZE;
212 } > m_data
213
214 m_usb_bdt (NOLOAD) :
215 {
216 . = ALIGN(512);
217 *(m_usb_bdt)
218 } > m_usb_sram
219
220 m_usb_global (NOLOAD) :
221 {
222 *(m_usb_global)
223 } > m_usb_sram
224
225 /* Initializes stack on the end of block */
226 __StackTop = ORIGIN(m_data) + LENGTH(m_data);
227 __StackLimit = __StackTop - STACK_SIZE;
228 PROVIDE(__stack = __StackTop);
229
230 .ARM.attributes 0 : { *(.ARM.attributes) }
231
232 ASSERT(__StackLimit >= __HeapLimit, "region m_data overflowed with stack and heap")
233}
234
diff --git a/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/LPC55S69_cm33_core0_flash_s.ld b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/LPC55S69_cm33_core0_flash_s.ld
new file mode 100644
index 000000000..e65b3f586
--- /dev/null
+++ b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/LPC55S69_cm33_core0_flash_s.ld
@@ -0,0 +1,245 @@
1/*
2** ###################################################################
3** Processors: LPC55S69JBD100_cm33_core0
4** LPC55S69JBD64_cm33_core0
5** LPC55S69JEV98_cm33_core0
6**
7** Compiler: GNU C Compiler
8** Reference manual: LPC55S6x/LPC55S2x/LPC552x User manual(UM11126) Rev.1.3 16 May 2019
9** Version: rev. 1.1, 2019-05-16
10** Build: b190926
11**
12** Abstract:
13** Linker file for the GNU C Compiler
14**
15** Copyright 2016 Freescale Semiconductor, Inc.
16** Copyright 2016-2019 NXP
17** All rights reserved.
18**
19** SPDX-License-Identifier: BSD-3-Clause
20**
21** http: www.nxp.com
22** mail: [email protected]
23**
24** ###################################################################
25*/
26
27
28
29/* Entry Point */
30ENTRY(Reset_Handler)
31
32HEAP_SIZE = DEFINED(__heap_size__) ? __heap_size__ : 0x0400;
33STACK_SIZE = DEFINED(__stack_size__) ? __stack_size__ : 0x0800;
34RPMSG_SHMEM_SIZE = DEFINED(__use_shmem__) ? 0x1800 : 0;
35
36/* Specify the memory areas */
37MEMORY
38{
39 m_interrupts (RX) : ORIGIN = 0x10000000, LENGTH = 0x00000200
40 m_text (RX) : ORIGIN = 0x10000200, LENGTH = 0x0000FC00
41 m_veneer_table (RX) : ORIGIN = 0x1000FE00, LENGTH = 0x00000200
42 m_core1_image (RX) : ORIGIN = 0x10072000, LENGTH = 0x00026000
43 m_data (RW) : ORIGIN = 0x30000000, LENGTH = 0x00008000
44 rpmsg_sh_mem (RW) : ORIGIN = 0x30033000 - RPMSG_SHMEM_SIZE, LENGTH = RPMSG_SHMEM_SIZE
45 m_usb_sram (RW) : ORIGIN = 0x50100000, LENGTH = 0x00004000
46}
47
48/* Define output sections */
49SECTIONS
50{
51 /* section for storing the secondary core image */
52 .core1_code :
53 {
54 . = ALIGN(4) ;
55 KEEP (*(.core1_code))
56 *(.core1_code*)
57 . = ALIGN(4) ;
58 } > m_core1_image
59
60 /* NOINIT section for rpmsg_sh_mem */
61 .noinit_rpmsg_sh_mem (NOLOAD) : ALIGN(4)
62 {
63 __RPMSG_SH_MEM_START__ = .;
64 *(.noinit.$rpmsg_sh_mem*)
65 . = ALIGN(4) ;
66 __RPMSG_SH_MEM_END__ = .;
67 } > rpmsg_sh_mem
68
69 /* The startup code goes first into internal flash */
70 .interrupts :
71 {
72 . = ALIGN(4);
73 KEEP(*(.isr_vector)) /* Startup code */
74 . = ALIGN(4);
75 } > m_interrupts
76
77 /* The program code and other data goes into internal flash */
78 .text :
79 {
80 . = ALIGN(4);
81 *(.text) /* .text sections (code) */
82 *(.text*) /* .text* sections (code) */
83 *(.rodata) /* .rodata sections (constants, strings, etc.) */
84 *(.rodata*) /* .rodata* sections (constants, strings, etc.) */
85 *(.glue_7) /* glue arm to thumb code */
86 *(.glue_7t) /* glue thumb to arm code */
87 *(.eh_frame)
88 KEEP (*(.init))
89 KEEP (*(.fini))
90 . = ALIGN(4);
91 } > m_text
92
93 /* section for veneer table */
94 .gnu.sgstubs :
95 {
96 . = ALIGN(32);
97 _start_sg = .;
98 *(.gnu.sgstubs*)
99 . = ALIGN(32);
100 _end_sg = .;
101 } > m_veneer_table
102
103 .ARM.extab :
104 {
105 *(.ARM.extab* .gnu.linkonce.armextab.*)
106 } > m_text
107
108 .ARM :
109 {
110 __exidx_start = .;
111 *(.ARM.exidx*)
112 __exidx_end = .;
113 } > m_text
114
115 .ctors :
116 {
117 __CTOR_LIST__ = .;
118 /* gcc uses crtbegin.o to find the start of
119 the constructors, so we make sure it is
120 first. Because this is a wildcard, it
121 doesn't matter if the user does not
122 actually link against crtbegin.o; the
123 linker won't look for a file to match a
124 wildcard. The wildcard also means that it
125 doesn't matter which directory crtbegin.o
126 is in. */
127 KEEP (*crtbegin.o(.ctors))
128 KEEP (*crtbegin?.o(.ctors))
129 /* We don't want to include the .ctor section from
130 from the crtend.o file until after the sorted ctors.
131 The .ctor section from the crtend file contains the
132 end of ctors marker and it must be last */
133 KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors))
134 KEEP (*(SORT(.ctors.*)))
135 KEEP (*(.ctors))
136 __CTOR_END__ = .;
137 } > m_text
138
139 .dtors :
140 {
141 __DTOR_LIST__ = .;
142 KEEP (*crtbegin.o(.dtors))
143 KEEP (*crtbegin?.o(.dtors))
144 KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors))
145 KEEP (*(SORT(.dtors.*)))
146 KEEP (*(.dtors))
147 __DTOR_END__ = .;
148 } > m_text
149
150 .preinit_array :
151 {
152 PROVIDE_HIDDEN (__preinit_array_start = .);
153 KEEP (*(.preinit_array*))
154 PROVIDE_HIDDEN (__preinit_array_end = .);
155 } > m_text
156
157 .init_array :
158 {
159 PROVIDE_HIDDEN (__init_array_start = .);
160 KEEP (*(SORT(.init_array.*)))
161 KEEP (*(.init_array*))
162 PROVIDE_HIDDEN (__init_array_end = .);
163 } > m_text
164
165 .fini_array :
166 {
167 PROVIDE_HIDDEN (__fini_array_start = .);
168 KEEP (*(SORT(.fini_array.*)))
169 KEEP (*(.fini_array*))
170 PROVIDE_HIDDEN (__fini_array_end = .);
171 } > m_text
172
173 __etext = .; /* define a global symbol at end of code */
174 __DATA_ROM = .; /* Symbol is used by startup for data initialization */
175
176 .data : AT(__DATA_ROM)
177 {
178 . = ALIGN(4);
179 __DATA_RAM = .;
180 __data_start__ = .; /* create a global symbol at data start */
181 *(.ramfunc*) /* for functions in ram */
182 *(.data) /* .data sections */
183 *(.data*) /* .data* sections */
184 KEEP(*(.jcr*))
185 . = ALIGN(4);
186 __data_end__ = .; /* define a global symbol at data end */
187 } > m_data
188
189 __DATA_END = __DATA_ROM + (__data_end__ - __data_start__);
190 text_end = ORIGIN(m_text) + LENGTH(m_text);
191 ASSERT(__DATA_END <= text_end, "region m_text overflowed with text and data")
192
193 /* Uninitialized data section */
194 .bss :
195 {
196 /* This is used by the startup in order to initialize the .bss section */
197 . = ALIGN(4);
198 __START_BSS = .;
199 __bss_start__ = .;
200 *(.bss)
201 *(.bss*)
202 *(COMMON)
203 . = ALIGN(4);
204 __bss_end__ = .;
205 __END_BSS = .;
206 } > m_data
207
208 .heap :
209 {
210 . = ALIGN(8);
211 __end__ = .;
212 PROVIDE(end = .);
213 __HeapBase = .;
214 . += HEAP_SIZE;
215 __HeapLimit = .;
216 __heap_limit = .; /* Add for _sbrk */
217 } > m_data
218
219 .stack :
220 {
221 . = ALIGN(8);
222 . += STACK_SIZE;
223 } > m_data
224
225 m_usb_bdt (NOLOAD) :
226 {
227 . = ALIGN(512);
228 *(m_usb_bdt)
229 } > m_usb_sram
230
231 m_usb_global (NOLOAD) :
232 {
233 *(m_usb_global)
234 } > m_usb_sram
235
236 /* Initializes stack on the end of block */
237 __StackTop = ORIGIN(m_data) + LENGTH(m_data);
238 __StackLimit = __StackTop - STACK_SIZE;
239 PROVIDE(__stack = __StackTop);
240
241 .ARM.attributes 0 : { *(.ARM.attributes) }
242
243 ASSERT(__StackLimit >= __HeapLimit, "region m_data overflowed with stack and heap")
244}
245
diff --git a/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/LPC55S69_cm33_core0_ram.ld b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/LPC55S69_cm33_core0_ram.ld
new file mode 100644
index 000000000..c2d426900
--- /dev/null
+++ b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/LPC55S69_cm33_core0_ram.ld
@@ -0,0 +1,234 @@
1/*
2** ###################################################################
3** Processors: LPC55S69JBD100_cm33_core0
4** LPC55S69JBD64_cm33_core0
5** LPC55S69JEV98_cm33_core0
6**
7** Compiler: GNU C Compiler
8** Reference manual: LPC55S6x/LPC55S2x/LPC552x User manual(UM11126) Rev.1.3 16 May 2019
9** Version: rev. 1.1, 2019-05-16
10** Build: b200722
11**
12** Abstract:
13** Linker file for the GNU C Compiler
14**
15** Copyright 2016 Freescale Semiconductor, Inc.
16** Copyright 2016-2020 NXP
17** All rights reserved.
18**
19** SPDX-License-Identifier: BSD-3-Clause
20**
21** http: www.nxp.com
22** mail: [email protected]
23**
24** ###################################################################
25*/
26
27
28
29/* Entry Point */
30ENTRY(Reset_Handler)
31
32HEAP_SIZE = DEFINED(__heap_size__) ? __heap_size__ : 0x0400;
33STACK_SIZE = DEFINED(__stack_size__) ? __stack_size__ : 0x0800;
34RPMSG_SHMEM_SIZE = DEFINED(__use_shmem__) ? 0x1800 : 0;
35
36/* Specify the memory areas */
37MEMORY
38{
39 m_interrupts (RX) : ORIGIN = 0x04000000, LENGTH = 0x00000200
40 m_text (RX) : ORIGIN = 0x04000200, LENGTH = 0x00007E00
41 m_core1_image (RX) : ORIGIN = 0x20033000, LENGTH = 0x0000C800
42 m_data (RW) : ORIGIN = 0x20000000, LENGTH = 0x00033000 - RPMSG_SHMEM_SIZE
43 rpmsg_sh_mem (RW) : ORIGIN = 0x20033000 - RPMSG_SHMEM_SIZE, LENGTH = RPMSG_SHMEM_SIZE
44 m_usb_sram (RW) : ORIGIN = 0x40100000, LENGTH = 0x00004000
45}
46
47/* Define output sections */
48SECTIONS
49{
50 /* section for storing the secondary core image */
51 .core1_code :
52 {
53 . = ALIGN(4) ;
54 KEEP (*(.core1_code))
55 *(.core1_code*)
56 . = ALIGN(4) ;
57 } > m_core1_image
58
59 /* NOINIT section for rpmsg_sh_mem */
60 .noinit_rpmsg_sh_mem (NOLOAD) : ALIGN(4)
61 {
62 __RPMSG_SH_MEM_START__ = .;
63 *(.noinit.$rpmsg_sh_mem*)
64 . = ALIGN(4) ;
65 __RPMSG_SH_MEM_END__ = .;
66 } > rpmsg_sh_mem
67
68 /* The startup code goes first into internal flash */
69 .interrupts :
70 {
71 . = ALIGN(4);
72 KEEP(*(.isr_vector)) /* Startup code */
73 . = ALIGN(4);
74 } > m_interrupts
75
76 /* The program code and other data goes into internal flash */
77 .text :
78 {
79 . = ALIGN(4);
80 *(.text) /* .text sections (code) */
81 *(.text*) /* .text* sections (code) */
82 *(.rodata) /* .rodata sections (constants, strings, etc.) */
83 *(.rodata*) /* .rodata* sections (constants, strings, etc.) */
84 *(.glue_7) /* glue arm to thumb code */
85 *(.glue_7t) /* glue thumb to arm code */
86 *(.eh_frame)
87 KEEP (*(.init))
88 KEEP (*(.fini))
89 . = ALIGN(4);
90 } > m_text
91
92 .ARM.extab :
93 {
94 *(.ARM.extab* .gnu.linkonce.armextab.*)
95 } > m_text
96
97 .ARM :
98 {
99 __exidx_start = .;
100 *(.ARM.exidx*)
101 __exidx_end = .;
102 } > m_text
103
104 .ctors :
105 {
106 __CTOR_LIST__ = .;
107 /* gcc uses crtbegin.o to find the start of
108 the constructors, so we make sure it is
109 first. Because this is a wildcard, it
110 doesn't matter if the user does not
111 actually link against crtbegin.o; the
112 linker won't look for a file to match a
113 wildcard. The wildcard also means that it
114 doesn't matter which directory crtbegin.o
115 is in. */
116 KEEP (*crtbegin.o(.ctors))
117 KEEP (*crtbegin?.o(.ctors))
118 /* We don't want to include the .ctor section from
119 from the crtend.o file until after the sorted ctors.
120 The .ctor section from the crtend file contains the
121 end of ctors marker and it must be last */
122 KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors))
123 KEEP (*(SORT(.ctors.*)))
124 KEEP (*(.ctors))
125 __CTOR_END__ = .;
126 } > m_text
127
128 .dtors :
129 {
130 __DTOR_LIST__ = .;
131 KEEP (*crtbegin.o(.dtors))
132 KEEP (*crtbegin?.o(.dtors))
133 KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors))
134 KEEP (*(SORT(.dtors.*)))
135 KEEP (*(.dtors))
136 __DTOR_END__ = .;
137 } > m_text
138
139 .preinit_array :
140 {
141 PROVIDE_HIDDEN (__preinit_array_start = .);
142 KEEP (*(.preinit_array*))
143 PROVIDE_HIDDEN (__preinit_array_end = .);
144 } > m_text
145
146 .init_array :
147 {
148 PROVIDE_HIDDEN (__init_array_start = .);
149 KEEP (*(SORT(.init_array.*)))
150 KEEP (*(.init_array*))
151 PROVIDE_HIDDEN (__init_array_end = .);
152 } > m_text
153
154 .fini_array :
155 {
156 PROVIDE_HIDDEN (__fini_array_start = .);
157 KEEP (*(SORT(.fini_array.*)))
158 KEEP (*(.fini_array*))
159 PROVIDE_HIDDEN (__fini_array_end = .);
160 } > m_text
161
162 __etext = .; /* define a global symbol at end of code */
163 __DATA_ROM = .; /* Symbol is used by startup for data initialization */
164
165 .data : AT(__DATA_ROM)
166 {
167 . = ALIGN(4);
168 __DATA_RAM = .;
169 __data_start__ = .; /* create a global symbol at data start */
170 *(.ramfunc*) /* for functions in ram */
171 *(.data) /* .data sections */
172 *(.data*) /* .data* sections */
173 KEEP(*(.jcr*))
174 . = ALIGN(4);
175 __data_end__ = .; /* define a global symbol at data end */
176 } > m_data
177
178 __DATA_END = __DATA_ROM + (__data_end__ - __data_start__);
179 text_end = ORIGIN(m_text) + LENGTH(m_text);
180 ASSERT(__DATA_END <= text_end, "region m_text overflowed with text and data")
181
182 /* Uninitialized data section */
183 .bss :
184 {
185 /* This is used by the startup in order to initialize the .bss section */
186 . = ALIGN(4);
187 __START_BSS = .;
188 __bss_start__ = .;
189 *(.bss)
190 *(.bss*)
191 *(COMMON)
192 . = ALIGN(4);
193 __bss_end__ = .;
194 __END_BSS = .;
195 } > m_data
196
197 .heap :
198 {
199 . = ALIGN(8);
200 __end__ = .;
201 PROVIDE(end = .);
202 __HeapBase = .;
203 . += HEAP_SIZE;
204 __HeapLimit = .;
205 __heap_limit = .; /* Add for _sbrk */
206 } > m_data
207
208 .stack :
209 {
210 . = ALIGN(8);
211 . += STACK_SIZE;
212 } > m_data
213
214 m_usb_bdt (NOLOAD) :
215 {
216 . = ALIGN(512);
217 *(m_usb_bdt)
218 } > m_usb_sram
219
220 m_usb_global (NOLOAD) :
221 {
222 *(m_usb_global)
223 } > m_usb_sram
224
225 /* Initializes stack on the end of block */
226 __StackTop = ORIGIN(m_data) + LENGTH(m_data);
227 __StackLimit = __StackTop - STACK_SIZE;
228 PROVIDE(__stack = __StackTop);
229
230 .ARM.attributes 0 : { *(.ARM.attributes) }
231
232 ASSERT(__StackLimit >= __HeapLimit, "region m_data overflowed with stack and heap")
233}
234
diff --git a/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/LPC55S69_cm33_core1_flash.ld b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/LPC55S69_cm33_core1_flash.ld
new file mode 100644
index 000000000..5f3002438
--- /dev/null
+++ b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/LPC55S69_cm33_core1_flash.ld
@@ -0,0 +1,224 @@
1/*
2** ###################################################################
3** Processors: LPC55S69JBD100_cm33_core1
4** LPC55S69JBD64_cm33_core1
5** LPC55S69JEV98_cm33_core1
6**
7** Compiler: GNU C Compiler
8** Reference manual: LPC55S6x/LPC55S2x/LPC552x User manual(UM11126) Rev.1.3 16 May 2019
9** Version: rev. 1.1, 2019-05-16
10** Build: b200722
11**
12** Abstract:
13** Linker file for the GNU C Compiler
14**
15** Copyright 2016 Freescale Semiconductor, Inc.
16** Copyright 2016-2020 NXP
17** All rights reserved.
18**
19** SPDX-License-Identifier: BSD-3-Clause
20**
21** http: www.nxp.com
22** mail: [email protected]
23**
24** ###################################################################
25*/
26
27
28
29/* Entry Point */
30ENTRY(Reset_Handler)
31
32HEAP_SIZE = DEFINED(__heap_size__) ? __heap_size__ : 0x0400;
33STACK_SIZE = DEFINED(__stack_size__) ? __stack_size__ : 0x0800;
34RPMSG_SHMEM_SIZE = DEFINED(__use_shmem__) ? 0x1800 : 0;
35
36/* Specify the memory areas */
37MEMORY
38{
39 m_interrupts (RX) : ORIGIN = 0x00072000, LENGTH = 0x00000200
40 m_text (RX) : ORIGIN = 0x00072200, LENGTH = 0x00025E00
41 m_data (RW) : ORIGIN = 0x20033000, LENGTH = 0x00011000
42 rpmsg_sh_mem (RW) : ORIGIN = 0x20033000 - RPMSG_SHMEM_SIZE, LENGTH = RPMSG_SHMEM_SIZE
43 m_usb_sram (RW) : ORIGIN = 0x40100000, LENGTH = 0x00004000
44}
45
46/* Define output sections */
47SECTIONS
48{
49 /* NOINIT section for rpmsg_sh_mem */
50 .noinit_rpmsg_sh_mem (NOLOAD) : ALIGN(4)
51 {
52 __RPMSG_SH_MEM_START__ = .;
53 *(.noinit.$rpmsg_sh_mem*)
54 . = ALIGN(4) ;
55 __RPMSG_SH_MEM_END__ = .;
56 } > rpmsg_sh_mem
57
58 /* The startup code goes first into internal flash */
59 .interrupts :
60 {
61 . = ALIGN(4);
62 KEEP(*(.isr_vector)) /* Startup code */
63 . = ALIGN(4);
64 } > m_interrupts
65
66 /* The program code and other data goes into internal flash */
67 .text :
68 {
69 . = ALIGN(4);
70 *(.text) /* .text sections (code) */
71 *(.text*) /* .text* sections (code) */
72 *(.rodata) /* .rodata sections (constants, strings, etc.) */
73 *(.rodata*) /* .rodata* sections (constants, strings, etc.) */
74 *(.glue_7) /* glue arm to thumb code */
75 *(.glue_7t) /* glue thumb to arm code */
76 *(.eh_frame)
77 KEEP (*(.init))
78 KEEP (*(.fini))
79 . = ALIGN(4);
80 } > m_text
81
82 .ARM.extab :
83 {
84 *(.ARM.extab* .gnu.linkonce.armextab.*)
85 } > m_text
86
87 .ARM :
88 {
89 __exidx_start = .;
90 *(.ARM.exidx*)
91 __exidx_end = .;
92 } > m_text
93
94 .ctors :
95 {
96 __CTOR_LIST__ = .;
97 /* gcc uses crtbegin.o to find the start of
98 the constructors, so we make sure it is
99 first. Because this is a wildcard, it
100 doesn't matter if the user does not
101 actually link against crtbegin.o; the
102 linker won't look for a file to match a
103 wildcard. The wildcard also means that it
104 doesn't matter which directory crtbegin.o
105 is in. */
106 KEEP (*crtbegin.o(.ctors))
107 KEEP (*crtbegin?.o(.ctors))
108 /* We don't want to include the .ctor section from
109 from the crtend.o file until after the sorted ctors.
110 The .ctor section from the crtend file contains the
111 end of ctors marker and it must be last */
112 KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors))
113 KEEP (*(SORT(.ctors.*)))
114 KEEP (*(.ctors))
115 __CTOR_END__ = .;
116 } > m_text
117
118 .dtors :
119 {
120 __DTOR_LIST__ = .;
121 KEEP (*crtbegin.o(.dtors))
122 KEEP (*crtbegin?.o(.dtors))
123 KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors))
124 KEEP (*(SORT(.dtors.*)))
125 KEEP (*(.dtors))
126 __DTOR_END__ = .;
127 } > m_text
128
129 .preinit_array :
130 {
131 PROVIDE_HIDDEN (__preinit_array_start = .);
132 KEEP (*(.preinit_array*))
133 PROVIDE_HIDDEN (__preinit_array_end = .);
134 } > m_text
135
136 .init_array :
137 {
138 PROVIDE_HIDDEN (__init_array_start = .);
139 KEEP (*(SORT(.init_array.*)))
140 KEEP (*(.init_array*))
141 PROVIDE_HIDDEN (__init_array_end = .);
142 } > m_text
143
144 .fini_array :
145 {
146 PROVIDE_HIDDEN (__fini_array_start = .);
147 KEEP (*(SORT(.fini_array.*)))
148 KEEP (*(.fini_array*))
149 PROVIDE_HIDDEN (__fini_array_end = .);
150 } > m_text
151
152 __etext = .; /* define a global symbol at end of code */
153 __DATA_ROM = .; /* Symbol is used by startup for data initialization */
154
155 .data : AT(__DATA_ROM)
156 {
157 . = ALIGN(4);
158 __DATA_RAM = .;
159 __data_start__ = .; /* create a global symbol at data start */
160 *(.ramfunc*) /* for functions in ram */
161 *(.data) /* .data sections */
162 *(.data*) /* .data* sections */
163 KEEP(*(.jcr*))
164 . = ALIGN(4);
165 __data_end__ = .; /* define a global symbol at data end */
166 } > m_data
167
168 __DATA_END = __DATA_ROM + (__data_end__ - __data_start__);
169 text_end = ORIGIN(m_text) + LENGTH(m_text);
170 ASSERT(__DATA_END <= text_end, "region m_text overflowed with text and data")
171
172 /* Uninitialized data section */
173 .bss :
174 {
175 /* This is used by the startup in order to initialize the .bss section */
176 . = ALIGN(4);
177 __START_BSS = .;
178 __bss_start__ = .;
179 *(.bss)
180 *(.bss*)
181 *(COMMON)
182 . = ALIGN(4);
183 __bss_end__ = .;
184 __END_BSS = .;
185 } > m_data
186
187 .heap :
188 {
189 . = ALIGN(8);
190 __end__ = .;
191 PROVIDE(end = .);
192 __HeapBase = .;
193 . += HEAP_SIZE;
194 __HeapLimit = .;
195 __heap_limit = .; /* Add for _sbrk */
196 } > m_data
197
198 .stack :
199 {
200 . = ALIGN(8);
201 . += STACK_SIZE;
202 } > m_data
203
204 m_usb_bdt (NOLOAD) :
205 {
206 . = ALIGN(512);
207 *(m_usb_bdt)
208 } > m_usb_sram
209
210 m_usb_global (NOLOAD) :
211 {
212 *(m_usb_global)
213 } > m_usb_sram
214
215 /* Initializes stack on the end of block */
216 __StackTop = ORIGIN(m_data) + LENGTH(m_data);
217 __StackLimit = __StackTop - STACK_SIZE;
218 PROVIDE(__stack = __StackTop);
219
220 .ARM.attributes 0 : { *(.ARM.attributes) }
221
222 ASSERT(__StackLimit >= __HeapLimit, "region m_data overflowed with stack and heap")
223}
224
diff --git a/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/LPC55S69_cm33_core1_ram.ld b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/LPC55S69_cm33_core1_ram.ld
new file mode 100644
index 000000000..2539c1e32
--- /dev/null
+++ b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/LPC55S69_cm33_core1_ram.ld
@@ -0,0 +1,224 @@
1/*
2** ###################################################################
3** Processors: LPC55S69JBD100_cm33_core1
4** LPC55S69JBD64_cm33_core1
5** LPC55S69JEV98_cm33_core1
6**
7** Compiler: GNU C Compiler
8** Reference manual: LPC55S6x/LPC55S2x/LPC552x User manual(UM11126) Rev.1.3 16 May 2019
9** Version: rev. 1.1, 2019-05-16
10** Build: b200722
11**
12** Abstract:
13** Linker file for the GNU C Compiler
14**
15** Copyright 2016 Freescale Semiconductor, Inc.
16** Copyright 2016-2020 NXP
17** All rights reserved.
18**
19** SPDX-License-Identifier: BSD-3-Clause
20**
21** http: www.nxp.com
22** mail: [email protected]
23**
24** ###################################################################
25*/
26
27
28
29/* Entry Point */
30ENTRY(Reset_Handler)
31
32HEAP_SIZE = DEFINED(__heap_size__) ? __heap_size__ : 0x0400;
33STACK_SIZE = DEFINED(__stack_size__) ? __stack_size__ : 0x0800;
34RPMSG_SHMEM_SIZE = DEFINED(__use_shmem__) ? 0x1800 : 0;
35
36/* Specify the memory areas */
37MEMORY
38{
39 m_interrupts (RX) : ORIGIN = 0x20033000, LENGTH = 0x00000200
40 m_text (RX) : ORIGIN = 0x20033200, LENGTH = 0x0000C600
41 m_data (RW) : ORIGIN = 0x2003F800, LENGTH = 0x00004800
42 rpmsg_sh_mem (RW) : ORIGIN = 0x20033000 - RPMSG_SHMEM_SIZE, LENGTH = RPMSG_SHMEM_SIZE
43 m_usb_sram (RW) : ORIGIN = 0x40100000, LENGTH = 0x00004000
44}
45
46/* Define output sections */
47SECTIONS
48{
49 /* NOINIT section for rpmsg_sh_mem */
50 .noinit_rpmsg_sh_mem (NOLOAD) : ALIGN(4)
51 {
52 __RPMSG_SH_MEM_START__ = .;
53 *(.noinit.$rpmsg_sh_mem*)
54 . = ALIGN(4) ;
55 __RPMSG_SH_MEM_END__ = .;
56 } > rpmsg_sh_mem
57
58 /* The startup code goes first into internal flash */
59 .interrupts :
60 {
61 . = ALIGN(4);
62 KEEP(*(.isr_vector)) /* Startup code */
63 . = ALIGN(4);
64 } > m_interrupts
65
66 /* The program code and other data goes into internal flash */
67 .text :
68 {
69 . = ALIGN(4);
70 *(.text) /* .text sections (code) */
71 *(.text*) /* .text* sections (code) */
72 *(.rodata) /* .rodata sections (constants, strings, etc.) */
73 *(.rodata*) /* .rodata* sections (constants, strings, etc.) */
74 *(.glue_7) /* glue arm to thumb code */
75 *(.glue_7t) /* glue thumb to arm code */
76 *(.eh_frame)
77 KEEP (*(.init))
78 KEEP (*(.fini))
79 . = ALIGN(4);
80 } > m_text
81
82 .ARM.extab :
83 {
84 *(.ARM.extab* .gnu.linkonce.armextab.*)
85 } > m_text
86
87 .ARM :
88 {
89 __exidx_start = .;
90 *(.ARM.exidx*)
91 __exidx_end = .;
92 } > m_text
93
94 .ctors :
95 {
96 __CTOR_LIST__ = .;
97 /* gcc uses crtbegin.o to find the start of
98 the constructors, so we make sure it is
99 first. Because this is a wildcard, it
100 doesn't matter if the user does not
101 actually link against crtbegin.o; the
102 linker won't look for a file to match a
103 wildcard. The wildcard also means that it
104 doesn't matter which directory crtbegin.o
105 is in. */
106 KEEP (*crtbegin.o(.ctors))
107 KEEP (*crtbegin?.o(.ctors))
108 /* We don't want to include the .ctor section from
109 from the crtend.o file until after the sorted ctors.
110 The .ctor section from the crtend file contains the
111 end of ctors marker and it must be last */
112 KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors))
113 KEEP (*(SORT(.ctors.*)))
114 KEEP (*(.ctors))
115 __CTOR_END__ = .;
116 } > m_text
117
118 .dtors :
119 {
120 __DTOR_LIST__ = .;
121 KEEP (*crtbegin.o(.dtors))
122 KEEP (*crtbegin?.o(.dtors))
123 KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors))
124 KEEP (*(SORT(.dtors.*)))
125 KEEP (*(.dtors))
126 __DTOR_END__ = .;
127 } > m_text
128
129 .preinit_array :
130 {
131 PROVIDE_HIDDEN (__preinit_array_start = .);
132 KEEP (*(.preinit_array*))
133 PROVIDE_HIDDEN (__preinit_array_end = .);
134 } > m_text
135
136 .init_array :
137 {
138 PROVIDE_HIDDEN (__init_array_start = .);
139 KEEP (*(SORT(.init_array.*)))
140 KEEP (*(.init_array*))
141 PROVIDE_HIDDEN (__init_array_end = .);
142 } > m_text
143
144 .fini_array :
145 {
146 PROVIDE_HIDDEN (__fini_array_start = .);
147 KEEP (*(SORT(.fini_array.*)))
148 KEEP (*(.fini_array*))
149 PROVIDE_HIDDEN (__fini_array_end = .);
150 } > m_text
151
152 __etext = .; /* define a global symbol at end of code */
153 __DATA_ROM = .; /* Symbol is used by startup for data initialization */
154
155 .data : AT(__DATA_ROM)
156 {
157 . = ALIGN(4);
158 __DATA_RAM = .;
159 __data_start__ = .; /* create a global symbol at data start */
160 *(.ramfunc*) /* for functions in ram */
161 *(.data) /* .data sections */
162 *(.data*) /* .data* sections */
163 KEEP(*(.jcr*))
164 . = ALIGN(4);
165 __data_end__ = .; /* define a global symbol at data end */
166 } > m_data
167
168 __DATA_END = __DATA_ROM + (__data_end__ - __data_start__);
169 text_end = ORIGIN(m_text) + LENGTH(m_text);
170 ASSERT(__DATA_END <= text_end, "region m_text overflowed with text and data")
171
172 /* Uninitialized data section */
173 .bss :
174 {
175 /* This is used by the startup in order to initialize the .bss section */
176 . = ALIGN(4);
177 __START_BSS = .;
178 __bss_start__ = .;
179 *(.bss)
180 *(.bss*)
181 *(COMMON)
182 . = ALIGN(4);
183 __bss_end__ = .;
184 __END_BSS = .;
185 } > m_data
186
187 .heap :
188 {
189 . = ALIGN(8);
190 __end__ = .;
191 PROVIDE(end = .);
192 __HeapBase = .;
193 . += HEAP_SIZE;
194 __HeapLimit = .;
195 __heap_limit = .; /* Add for _sbrk */
196 } > m_data
197
198 .stack :
199 {
200 . = ALIGN(8);
201 . += STACK_SIZE;
202 } > m_data
203
204 m_usb_bdt (NOLOAD) :
205 {
206 . = ALIGN(512);
207 *(m_usb_bdt)
208 } > m_usb_sram
209
210 m_usb_global (NOLOAD) :
211 {
212 *(m_usb_global)
213 } > m_usb_sram
214
215 /* Initializes stack on the end of block */
216 __StackTop = ORIGIN(m_data) + LENGTH(m_data);
217 __StackLimit = __StackTop - STACK_SIZE;
218 PROVIDE(__stack = __StackTop);
219
220 .ARM.attributes 0 : { *(.ARM.attributes) }
221
222 ASSERT(__StackLimit >= __HeapLimit, "region m_data overflowed with stack and heap")
223}
224
diff --git a/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/LPC55S69_cm33_core1_ram_s.ld b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/LPC55S69_cm33_core1_ram_s.ld
new file mode 100644
index 000000000..8efdda236
--- /dev/null
+++ b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/LPC55S69_cm33_core1_ram_s.ld
@@ -0,0 +1,224 @@
1/*
2** ###################################################################
3** Processors: LPC55S69JBD100_cm33_core1
4** LPC55S69JBD64_cm33_core1
5** LPC55S69JEV98_cm33_core1
6**
7** Compiler: GNU C Compiler
8** Reference manual: LPC55S6x/LPC55S2x/LPC552x User manual(UM11126) Rev.1.3 16 May 2019
9** Version: rev. 1.1, 2019-05-16
10** Build: b190926
11**
12** Abstract:
13** Linker file for the GNU C Compiler
14**
15** Copyright 2016 Freescale Semiconductor, Inc.
16** Copyright 2016-2019 NXP
17** All rights reserved.
18**
19** SPDX-License-Identifier: BSD-3-Clause
20**
21** http: www.nxp.com
22** mail: [email protected]
23**
24** ###################################################################
25*/
26
27
28
29/* Entry Point */
30ENTRY(Reset_Handler)
31
32HEAP_SIZE = DEFINED(__heap_size__) ? __heap_size__ : 0x0400;
33STACK_SIZE = DEFINED(__stack_size__) ? __stack_size__ : 0x0800;
34RPMSG_SHMEM_SIZE = DEFINED(__use_shmem__) ? 0x1800 : 0;
35
36/* Specify the memory areas */
37MEMORY
38{
39 m_interrupts (RX) : ORIGIN = 0x30033000, LENGTH = 0x00000200
40 m_text (RX) : ORIGIN = 0x30033200, LENGTH = 0x0000C600
41 m_data (RW) : ORIGIN = 0x3003F800, LENGTH = 0x00004800
42 rpmsg_sh_mem (RW) : ORIGIN = 0x30033000 - RPMSG_SHMEM_SIZE, LENGTH = RPMSG_SHMEM_SIZE
43 m_usb_sram (RW) : ORIGIN = 0x50100000, LENGTH = 0x00004000
44}
45
46/* Define output sections */
47SECTIONS
48{
49 /* NOINIT section for rpmsg_sh_mem */
50 .noinit_rpmsg_sh_mem (NOLOAD) : ALIGN(4)
51 {
52 __RPMSG_SH_MEM_START__ = .;
53 *(.noinit.$rpmsg_sh_mem*)
54 . = ALIGN(4) ;
55 __RPMSG_SH_MEM_END__ = .;
56 } > rpmsg_sh_mem
57
58 /* The startup code goes first into internal flash */
59 .interrupts :
60 {
61 . = ALIGN(4);
62 KEEP(*(.isr_vector)) /* Startup code */
63 . = ALIGN(4);
64 } > m_interrupts
65
66 /* The program code and other data goes into internal flash */
67 .text :
68 {
69 . = ALIGN(4);
70 *(.text) /* .text sections (code) */
71 *(.text*) /* .text* sections (code) */
72 *(.rodata) /* .rodata sections (constants, strings, etc.) */
73 *(.rodata*) /* .rodata* sections (constants, strings, etc.) */
74 *(.glue_7) /* glue arm to thumb code */
75 *(.glue_7t) /* glue thumb to arm code */
76 *(.eh_frame)
77 KEEP (*(.init))
78 KEEP (*(.fini))
79 . = ALIGN(4);
80 } > m_text
81
82 .ARM.extab :
83 {
84 *(.ARM.extab* .gnu.linkonce.armextab.*)
85 } > m_text
86
87 .ARM :
88 {
89 __exidx_start = .;
90 *(.ARM.exidx*)
91 __exidx_end = .;
92 } > m_text
93
94 .ctors :
95 {
96 __CTOR_LIST__ = .;
97 /* gcc uses crtbegin.o to find the start of
98 the constructors, so we make sure it is
99 first. Because this is a wildcard, it
100 doesn't matter if the user does not
101 actually link against crtbegin.o; the
102 linker won't look for a file to match a
103 wildcard. The wildcard also means that it
104 doesn't matter which directory crtbegin.o
105 is in. */
106 KEEP (*crtbegin.o(.ctors))
107 KEEP (*crtbegin?.o(.ctors))
108 /* We don't want to include the .ctor section from
109 from the crtend.o file until after the sorted ctors.
110 The .ctor section from the crtend file contains the
111 end of ctors marker and it must be last */
112 KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors))
113 KEEP (*(SORT(.ctors.*)))
114 KEEP (*(.ctors))
115 __CTOR_END__ = .;
116 } > m_text
117
118 .dtors :
119 {
120 __DTOR_LIST__ = .;
121 KEEP (*crtbegin.o(.dtors))
122 KEEP (*crtbegin?.o(.dtors))
123 KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors))
124 KEEP (*(SORT(.dtors.*)))
125 KEEP (*(.dtors))
126 __DTOR_END__ = .;
127 } > m_text
128
129 .preinit_array :
130 {
131 PROVIDE_HIDDEN (__preinit_array_start = .);
132 KEEP (*(.preinit_array*))
133 PROVIDE_HIDDEN (__preinit_array_end = .);
134 } > m_text
135
136 .init_array :
137 {
138 PROVIDE_HIDDEN (__init_array_start = .);
139 KEEP (*(SORT(.init_array.*)))
140 KEEP (*(.init_array*))
141 PROVIDE_HIDDEN (__init_array_end = .);
142 } > m_text
143
144 .fini_array :
145 {
146 PROVIDE_HIDDEN (__fini_array_start = .);
147 KEEP (*(SORT(.fini_array.*)))
148 KEEP (*(.fini_array*))
149 PROVIDE_HIDDEN (__fini_array_end = .);
150 } > m_text
151
152 __etext = .; /* define a global symbol at end of code */
153 __DATA_ROM = .; /* Symbol is used by startup for data initialization */
154
155 .data : AT(__DATA_ROM)
156 {
157 . = ALIGN(4);
158 __DATA_RAM = .;
159 __data_start__ = .; /* create a global symbol at data start */
160 *(.ramfunc*) /* for functions in ram */
161 *(.data) /* .data sections */
162 *(.data*) /* .data* sections */
163 KEEP(*(.jcr*))
164 . = ALIGN(4);
165 __data_end__ = .; /* define a global symbol at data end */
166 } > m_data
167
168 __DATA_END = __DATA_ROM + (__data_end__ - __data_start__);
169 text_end = ORIGIN(m_text) + LENGTH(m_text);
170 ASSERT(__DATA_END <= text_end, "region m_text overflowed with text and data")
171
172 /* Uninitialized data section */
173 .bss :
174 {
175 /* This is used by the startup in order to initialize the .bss section */
176 . = ALIGN(4);
177 __START_BSS = .;
178 __bss_start__ = .;
179 *(.bss)
180 *(.bss*)
181 *(COMMON)
182 . = ALIGN(4);
183 __bss_end__ = .;
184 __END_BSS = .;
185 } > m_data
186
187 .heap :
188 {
189 . = ALIGN(8);
190 __end__ = .;
191 PROVIDE(end = .);
192 __HeapBase = .;
193 . += HEAP_SIZE;
194 __HeapLimit = .;
195 __heap_limit = .; /* Add for _sbrk */
196 } > m_data
197
198 .stack :
199 {
200 . = ALIGN(8);
201 . += STACK_SIZE;
202 } > m_data
203
204 m_usb_bdt (NOLOAD) :
205 {
206 . = ALIGN(512);
207 *(m_usb_bdt)
208 } > m_usb_sram
209
210 m_usb_global (NOLOAD) :
211 {
212 *(m_usb_global)
213 } > m_usb_sram
214
215 /* Initializes stack on the end of block */
216 __StackTop = ORIGIN(m_data) + LENGTH(m_data);
217 __StackLimit = __StackTop - STACK_SIZE;
218 PROVIDE(__stack = __StackTop);
219
220 .ARM.attributes 0 : { *(.ARM.attributes) }
221
222 ASSERT(__StackLimit >= __HeapLimit, "region m_data overflowed with stack and heap")
223}
224
diff --git a/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/libpower_hardabi.a b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/libpower_hardabi.a
new file mode 100644
index 000000000..92d25dfc5
--- /dev/null
+++ b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/libpower_hardabi.a
Binary files differ
diff --git a/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/libpower_hardabi_s.a b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/libpower_hardabi_s.a
new file mode 100644
index 000000000..b0adb7d3e
--- /dev/null
+++ b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/libpower_hardabi_s.a
Binary files differ
diff --git a/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/libpower_soft.a b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/libpower_soft.a
new file mode 100644
index 000000000..a0a81e830
--- /dev/null
+++ b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/libpower_soft.a
Binary files differ
diff --git a/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/libpower_softabi.a b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/libpower_softabi.a
new file mode 100644
index 000000000..7df8627e6
--- /dev/null
+++ b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/libpower_softabi.a
Binary files differ
diff --git a/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/libpower_softabi_s.a b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/libpower_softabi_s.a
new file mode 100644
index 000000000..79b7e6e61
--- /dev/null
+++ b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/libpower_softabi_s.a
Binary files differ
diff --git a/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/startup_LPC55S69_cm33_core0.S b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/startup_LPC55S69_cm33_core0.S
new file mode 100644
index 000000000..f9a5b019d
--- /dev/null
+++ b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/startup_LPC55S69_cm33_core0.S
@@ -0,0 +1,875 @@
1/* --------------------------------------------------------------------------*/
2/* @file: startup_LPC55S69_cm33_core0.s */
3/* @purpose: CMSIS Cortex-M33 Core Device Startup File */
4/* LPC55S69_cm33_core0 */
5/* @version: 1.1 */
6/* @date: 2019-5-16 */
7/* --------------------------------------------------------------------------*/
8/* */
9/* Copyright 1997-2016 Freescale Semiconductor, Inc. */
10/* Copyright 2016-2019 NXP */
11/* All rights reserved. */
12/* */
13/* SPDX-License-Identifier: BSD-3-Clause */
14/*****************************************************************************/
15/* Version: GCC for ARM Embedded Processors */
16/*****************************************************************************/
17
18
19 .syntax unified
20 .arch armv8-m.main
21
22 .section .isr_vector, "a"
23 .align 2
24 .globl __Vectors
25__Vectors:
26 .long __StackTop /* Top of Stack */
27 .long Reset_Handler /* Reset Handler */
28 .long NMI_Handler /* NMI Handler*/
29 .long HardFault_Handler /* Hard Fault Handler*/
30 .long MemManage_Handler /* MPU Fault Handler*/
31 .long BusFault_Handler /* Bus Fault Handler*/
32 .long UsageFault_Handler /* Usage Fault Handler*/
33 .long SecureFault_Handler /* Secure Fault Handler*/
34 .long 0 /* Reserved*/
35 .long 0 /* Reserved*/
36 .long 0 /* Reserved*/
37 .long SVC_Handler /* SVCall Handler*/
38 .long DebugMon_Handler /* Debug Monitor Handler*/
39 .long 0 /* Reserved*/
40 .long PendSV_Handler /* PendSV Handler*/
41 .long SysTick_Handler /* SysTick Handler*/
42
43 /* External Interrupts */
44 .long WDT_BOD_IRQHandler /* Windowed watchdog timer, Brownout detect, Flash interrupt */
45 .long DMA0_IRQHandler /* DMA0 controller */
46 .long GINT0_IRQHandler /* GPIO group 0 */
47 .long GINT1_IRQHandler /* GPIO group 1 */
48 .long PIN_INT0_IRQHandler /* Pin interrupt 0 or pattern match engine slice 0 */
49 .long PIN_INT1_IRQHandler /* Pin interrupt 1or pattern match engine slice 1 */
50 .long PIN_INT2_IRQHandler /* Pin interrupt 2 or pattern match engine slice 2 */
51 .long PIN_INT3_IRQHandler /* Pin interrupt 3 or pattern match engine slice 3 */
52 .long UTICK0_IRQHandler /* Micro-tick Timer */
53 .long MRT0_IRQHandler /* Multi-rate timer */
54 .long CTIMER0_IRQHandler /* Standard counter/timer CTIMER0 */
55 .long CTIMER1_IRQHandler /* Standard counter/timer CTIMER1 */
56 .long SCT0_IRQHandler /* SCTimer/PWM */
57 .long CTIMER3_IRQHandler /* Standard counter/timer CTIMER3 */
58 .long FLEXCOMM0_IRQHandler /* Flexcomm Interface 0 (USART, SPI, I2C, I2S, FLEXCOMM) */
59 .long FLEXCOMM1_IRQHandler /* Flexcomm Interface 1 (USART, SPI, I2C, I2S, FLEXCOMM) */
60 .long FLEXCOMM2_IRQHandler /* Flexcomm Interface 2 (USART, SPI, I2C, I2S, FLEXCOMM) */
61 .long FLEXCOMM3_IRQHandler /* Flexcomm Interface 3 (USART, SPI, I2C, I2S, FLEXCOMM) */
62 .long FLEXCOMM4_IRQHandler /* Flexcomm Interface 4 (USART, SPI, I2C, I2S, FLEXCOMM) */
63 .long FLEXCOMM5_IRQHandler /* Flexcomm Interface 5 (USART, SPI, I2C, I2S, FLEXCOMM) */
64 .long FLEXCOMM6_IRQHandler /* Flexcomm Interface 6 (USART, SPI, I2C, I2S, FLEXCOMM) */
65 .long FLEXCOMM7_IRQHandler /* Flexcomm Interface 7 (USART, SPI, I2C, I2S, FLEXCOMM) */
66 .long ADC0_IRQHandler /* ADC0 */
67 .long Reserved39_IRQHandler /* Reserved interrupt */
68 .long ACMP_IRQHandler /* ACMP interrupts */
69 .long Reserved41_IRQHandler /* Reserved interrupt */
70 .long Reserved42_IRQHandler /* Reserved interrupt */
71 .long USB0_NEEDCLK_IRQHandler /* USB Activity Wake-up Interrupt */
72 .long USB0_IRQHandler /* USB device */
73 .long RTC_IRQHandler /* RTC alarm and wake-up interrupts */
74 .long Reserved46_IRQHandler /* Reserved interrupt */
75 .long MAILBOX_IRQHandler /* WAKEUP,Mailbox interrupt (present on selected devices) */
76 .long PIN_INT4_IRQHandler /* Pin interrupt 4 or pattern match engine slice 4 int */
77 .long PIN_INT5_IRQHandler /* Pin interrupt 5 or pattern match engine slice 5 int */
78 .long PIN_INT6_IRQHandler /* Pin interrupt 6 or pattern match engine slice 6 int */
79 .long PIN_INT7_IRQHandler /* Pin interrupt 7 or pattern match engine slice 7 int */
80 .long CTIMER2_IRQHandler /* Standard counter/timer CTIMER2 */
81 .long CTIMER4_IRQHandler /* Standard counter/timer CTIMER4 */
82 .long OS_EVENT_IRQHandler /* OSEVTIMER0 and OSEVTIMER0_WAKEUP interrupts */
83 .long Reserved55_IRQHandler /* Reserved interrupt */
84 .long Reserved56_IRQHandler /* Reserved interrupt */
85 .long Reserved57_IRQHandler /* Reserved interrupt */
86 .long SDIO_IRQHandler /* SD/MMC */
87 .long Reserved59_IRQHandler /* Reserved interrupt */
88 .long Reserved60_IRQHandler /* Reserved interrupt */
89 .long Reserved61_IRQHandler /* Reserved interrupt */
90 .long USB1_PHY_IRQHandler /* USB1_PHY */
91 .long USB1_IRQHandler /* USB1 interrupt */
92 .long USB1_NEEDCLK_IRQHandler /* USB1 activity */
93 .long SEC_HYPERVISOR_CALL_IRQHandler /* SEC_HYPERVISOR_CALL interrupt */
94 .long SEC_GPIO_INT0_IRQ0_IRQHandler /* SEC_GPIO_INT0_IRQ0 interrupt */
95 .long SEC_GPIO_INT0_IRQ1_IRQHandler /* SEC_GPIO_INT0_IRQ1 interrupt */
96 .long PLU_IRQHandler /* PLU interrupt */
97 .long SEC_VIO_IRQHandler /* SEC_VIO interrupt */
98 .long HASHCRYPT_IRQHandler /* HASHCRYPT interrupt */
99 .long CASER_IRQHandler /* CASPER interrupt */
100 .long PUF_IRQHandler /* PUF interrupt */
101 .long PQ_IRQHandler /* PQ interrupt */
102 .long DMA1_IRQHandler /* DMA1 interrupt */
103 .long FLEXCOMM8_IRQHandler /* Flexcomm Interface 8 (SPI, , FLEXCOMM) */
104
105 .size __Vectors, . - __Vectors
106
107 .text
108 .thumb
109
110/* Reset Handler */
111 .thumb_func
112 .align 2
113 .globl Reset_Handler
114 .weak Reset_Handler
115 .type Reset_Handler, %function
116Reset_Handler:
117#ifndef __NO_SYSTEM_INIT
118 ldr r0,=SystemInit
119 blx r0
120#endif
121/* Loop to copy data from read only memory to RAM. The ranges
122 * of copy from/to are specified by following symbols evaluated in
123 * linker script.
124 * __etext: End of code section, i.e., begin of data sections to copy from.
125 * __data_start__/__data_end__: RAM address range that data should be
126 * copied to. Both must be aligned to 4 bytes boundary. */
127
128 ldr r1, =__etext
129 ldr r2, =__data_start__
130 ldr r3, =__data_end__
131
132#if 1
133/* Here are two copies of loop implemenations. First one favors code size
134 * and the second one favors performance. Default uses the first one.
135 * Change to "#if 0" to use the second one */
136.LC0:
137 cmp r2, r3
138 ittt lt
139 ldrlt r0, [r1], #4
140 strlt r0, [r2], #4
141 blt .LC0
142#else
143 subs r3, r2
144 ble .LC1
145.LC0:
146 subs r3, #4
147 ldr r0, [r1, r3]
148 str r0, [r2, r3]
149 bgt .LC0
150.LC1:
151#endif
152
153#ifdef __STARTUP_CLEAR_BSS
154/* This part of work usually is done in C library startup code. Otherwise,
155 * define this macro to enable it in this startup.
156 *
157 * Loop to zero out BSS section, which uses following symbols
158 * in linker script:
159 * __bss_start__: start of BSS section. Must align to 4
160 * __bss_end__: end of BSS section. Must align to 4
161 */
162 ldr r1, =__bss_start__
163 ldr r2, =__bss_end__
164
165 movs r0, 0
166.LC2:
167 cmp r1, r2
168 itt lt
169 strlt r0, [r1], #4
170 blt .LC2
171#endif /* __STARTUP_CLEAR_BSS */
172
173/* Add stack / heap initializaiton */
174 movs r0, 0
175 ldr r1, =__HeapBase
176 ldr r2, =__HeapLimit
177.LC3:
178 cmp r1, r2
179 itt lt
180 strlt r0, [r1], #4
181 blt .LC3
182
183 ldr r1, =__StackLimit
184 ldr r2, =__StackTop
185.LC4:
186 cmp r1, r2
187 itt lt
188 strlt r0, [r1], #4
189 blt .LC4
190/*End of stack / heap initializaiton */
191 cpsie i /* Unmask interrupts */
192
193#ifndef __START
194#define __START _start
195#endif
196#ifndef __ATOLLIC__
197 ldr r0,=__START
198 blx r0
199#else
200 ldr r0,=__libc_init_array
201 blx r0
202 ldr r0,=main
203 bx r0
204#endif
205 .pool
206 .size Reset_Handler, . - Reset_Handler
207
208 .align 1
209 .thumb_func
210 .weak DefaultISR
211 .type DefaultISR, %function
212DefaultISR:
213 b DefaultISR
214 .size DefaultISR, . - DefaultISR
215
216 .align 1
217 .thumb_func
218 .weak NMI_Handler
219 .type NMI_Handler, %function
220NMI_Handler:
221 ldr r0,=NMI_Handler
222 bx r0
223 .size NMI_Handler, . - NMI_Handler
224
225 .align 1
226 .thumb_func
227 .weak HardFault_Handler
228 .type HardFault_Handler, %function
229HardFault_Handler:
230 ldr r0,=HardFault_Handler
231 bx r0
232 .size HardFault_Handler, . - HardFault_Handler
233
234 .align 1
235 .thumb_func
236 .weak SVC_Handler
237 .type SVC_Handler, %function
238SVC_Handler:
239 ldr r0,=SVC_Handler
240 bx r0
241 .size SVC_Handler, . - SVC_Handler
242
243 .align 1
244 .thumb_func
245 .weak PendSV_Handler
246 .type PendSV_Handler, %function
247PendSV_Handler:
248 ldr r0,=PendSV_Handler
249 bx r0
250 .size PendSV_Handler, . - PendSV_Handler
251
252 .align 1
253 .thumb_func
254 .weak SysTick_Handler
255 .type SysTick_Handler, %function
256SysTick_Handler:
257 ldr r0,=SysTick_Handler
258 bx r0
259 .size SysTick_Handler, . - SysTick_Handler
260
261 .align 1
262 .thumb_func
263 .weak WDT_BOD_IRQHandler
264 .type WDT_BOD_IRQHandler, %function
265WDT_BOD_IRQHandler:
266 ldr r0,=WDT_BOD_DriverIRQHandler
267 bx r0
268 .size WDT_BOD_IRQHandler, . - WDT_BOD_IRQHandler
269
270 .align 1
271 .thumb_func
272 .weak DMA0_IRQHandler
273 .type DMA0_IRQHandler, %function
274DMA0_IRQHandler:
275 ldr r0,=DMA0_DriverIRQHandler
276 bx r0
277 .size DMA0_IRQHandler, . - DMA0_IRQHandler
278
279 .align 1
280 .thumb_func
281 .weak GINT0_IRQHandler
282 .type GINT0_IRQHandler, %function
283GINT0_IRQHandler:
284 ldr r0,=GINT0_DriverIRQHandler
285 bx r0
286 .size GINT0_IRQHandler, . - GINT0_IRQHandler
287
288 .align 1
289 .thumb_func
290 .weak GINT1_IRQHandler
291 .type GINT1_IRQHandler, %function
292GINT1_IRQHandler:
293 ldr r0,=GINT1_DriverIRQHandler
294 bx r0
295 .size GINT1_IRQHandler, . - GINT1_IRQHandler
296
297 .align 1
298 .thumb_func
299 .weak PIN_INT0_IRQHandler
300 .type PIN_INT0_IRQHandler, %function
301PIN_INT0_IRQHandler:
302 ldr r0,=PIN_INT0_DriverIRQHandler
303 bx r0
304 .size PIN_INT0_IRQHandler, . - PIN_INT0_IRQHandler
305
306 .align 1
307 .thumb_func
308 .weak PIN_INT1_IRQHandler
309 .type PIN_INT1_IRQHandler, %function
310PIN_INT1_IRQHandler:
311 ldr r0,=PIN_INT1_DriverIRQHandler
312 bx r0
313 .size PIN_INT1_IRQHandler, . - PIN_INT1_IRQHandler
314
315 .align 1
316 .thumb_func
317 .weak PIN_INT2_IRQHandler
318 .type PIN_INT2_IRQHandler, %function
319PIN_INT2_IRQHandler:
320 ldr r0,=PIN_INT2_DriverIRQHandler
321 bx r0
322 .size PIN_INT2_IRQHandler, . - PIN_INT2_IRQHandler
323
324 .align 1
325 .thumb_func
326 .weak PIN_INT3_IRQHandler
327 .type PIN_INT3_IRQHandler, %function
328PIN_INT3_IRQHandler:
329 ldr r0,=PIN_INT3_DriverIRQHandler
330 bx r0
331 .size PIN_INT3_IRQHandler, . - PIN_INT3_IRQHandler
332
333 .align 1
334 .thumb_func
335 .weak UTICK0_IRQHandler
336 .type UTICK0_IRQHandler, %function
337UTICK0_IRQHandler:
338 ldr r0,=UTICK0_DriverIRQHandler
339 bx r0
340 .size UTICK0_IRQHandler, . - UTICK0_IRQHandler
341
342 .align 1
343 .thumb_func
344 .weak MRT0_IRQHandler
345 .type MRT0_IRQHandler, %function
346MRT0_IRQHandler:
347 ldr r0,=MRT0_DriverIRQHandler
348 bx r0
349 .size MRT0_IRQHandler, . - MRT0_IRQHandler
350
351 .align 1
352 .thumb_func
353 .weak CTIMER0_IRQHandler
354 .type CTIMER0_IRQHandler, %function
355CTIMER0_IRQHandler:
356 ldr r0,=CTIMER0_DriverIRQHandler
357 bx r0
358 .size CTIMER0_IRQHandler, . - CTIMER0_IRQHandler
359
360 .align 1
361 .thumb_func
362 .weak CTIMER1_IRQHandler
363 .type CTIMER1_IRQHandler, %function
364CTIMER1_IRQHandler:
365 ldr r0,=CTIMER1_DriverIRQHandler
366 bx r0
367 .size CTIMER1_IRQHandler, . - CTIMER1_IRQHandler
368
369 .align 1
370 .thumb_func
371 .weak SCT0_IRQHandler
372 .type SCT0_IRQHandler, %function
373SCT0_IRQHandler:
374 ldr r0,=SCT0_DriverIRQHandler
375 bx r0
376 .size SCT0_IRQHandler, . - SCT0_IRQHandler
377
378 .align 1
379 .thumb_func
380 .weak CTIMER3_IRQHandler
381 .type CTIMER3_IRQHandler, %function
382CTIMER3_IRQHandler:
383 ldr r0,=CTIMER3_DriverIRQHandler
384 bx r0
385 .size CTIMER3_IRQHandler, . - CTIMER3_IRQHandler
386
387 .align 1
388 .thumb_func
389 .weak FLEXCOMM0_IRQHandler
390 .type FLEXCOMM0_IRQHandler, %function
391FLEXCOMM0_IRQHandler:
392 ldr r0,=FLEXCOMM0_DriverIRQHandler
393 bx r0
394 .size FLEXCOMM0_IRQHandler, . - FLEXCOMM0_IRQHandler
395
396 .align 1
397 .thumb_func
398 .weak FLEXCOMM1_IRQHandler
399 .type FLEXCOMM1_IRQHandler, %function
400FLEXCOMM1_IRQHandler:
401 ldr r0,=FLEXCOMM1_DriverIRQHandler
402 bx r0
403 .size FLEXCOMM1_IRQHandler, . - FLEXCOMM1_IRQHandler
404
405 .align 1
406 .thumb_func
407 .weak FLEXCOMM2_IRQHandler
408 .type FLEXCOMM2_IRQHandler, %function
409FLEXCOMM2_IRQHandler:
410 ldr r0,=FLEXCOMM2_DriverIRQHandler
411 bx r0
412 .size FLEXCOMM2_IRQHandler, . - FLEXCOMM2_IRQHandler
413
414 .align 1
415 .thumb_func
416 .weak FLEXCOMM3_IRQHandler
417 .type FLEXCOMM3_IRQHandler, %function
418FLEXCOMM3_IRQHandler:
419 ldr r0,=FLEXCOMM3_DriverIRQHandler
420 bx r0
421 .size FLEXCOMM3_IRQHandler, . - FLEXCOMM3_IRQHandler
422
423 .align 1
424 .thumb_func
425 .weak FLEXCOMM4_IRQHandler
426 .type FLEXCOMM4_IRQHandler, %function
427FLEXCOMM4_IRQHandler:
428 ldr r0,=FLEXCOMM4_DriverIRQHandler
429 bx r0
430 .size FLEXCOMM4_IRQHandler, . - FLEXCOMM4_IRQHandler
431
432 .align 1
433 .thumb_func
434 .weak FLEXCOMM5_IRQHandler
435 .type FLEXCOMM5_IRQHandler, %function
436FLEXCOMM5_IRQHandler:
437 ldr r0,=FLEXCOMM5_DriverIRQHandler
438 bx r0
439 .size FLEXCOMM5_IRQHandler, . - FLEXCOMM5_IRQHandler
440
441 .align 1
442 .thumb_func
443 .weak FLEXCOMM6_IRQHandler
444 .type FLEXCOMM6_IRQHandler, %function
445FLEXCOMM6_IRQHandler:
446 ldr r0,=FLEXCOMM6_DriverIRQHandler
447 bx r0
448 .size FLEXCOMM6_IRQHandler, . - FLEXCOMM6_IRQHandler
449
450 .align 1
451 .thumb_func
452 .weak FLEXCOMM7_IRQHandler
453 .type FLEXCOMM7_IRQHandler, %function
454FLEXCOMM7_IRQHandler:
455 ldr r0,=FLEXCOMM7_DriverIRQHandler
456 bx r0
457 .size FLEXCOMM7_IRQHandler, . - FLEXCOMM7_IRQHandler
458
459 .align 1
460 .thumb_func
461 .weak ADC0_IRQHandler
462 .type ADC0_IRQHandler, %function
463ADC0_IRQHandler:
464 ldr r0,=ADC0_DriverIRQHandler
465 bx r0
466 .size ADC0_IRQHandler, . - ADC0_IRQHandler
467
468 .align 1
469 .thumb_func
470 .weak Reserved39_IRQHandler
471 .type Reserved39_IRQHandler, %function
472Reserved39_IRQHandler:
473 ldr r0,=Reserved39_DriverIRQHandler
474 bx r0
475 .size Reserved39_IRQHandler, . - Reserved39_IRQHandler
476
477 .align 1
478 .thumb_func
479 .weak ACMP_IRQHandler
480 .type ACMP_IRQHandler, %function
481ACMP_IRQHandler:
482 ldr r0,=ACMP_DriverIRQHandler
483 bx r0
484 .size ACMP_IRQHandler, . - ACMP_IRQHandler
485
486 .align 1
487 .thumb_func
488 .weak Reserved41_IRQHandler
489 .type Reserved41_IRQHandler, %function
490Reserved41_IRQHandler:
491 ldr r0,=Reserved41_DriverIRQHandler
492 bx r0
493 .size Reserved41_IRQHandler, . - Reserved41_IRQHandler
494
495 .align 1
496 .thumb_func
497 .weak Reserved42_IRQHandler
498 .type Reserved42_IRQHandler, %function
499Reserved42_IRQHandler:
500 ldr r0,=Reserved42_DriverIRQHandler
501 bx r0
502 .size Reserved42_IRQHandler, . - Reserved42_IRQHandler
503
504 .align 1
505 .thumb_func
506 .weak USB0_NEEDCLK_IRQHandler
507 .type USB0_NEEDCLK_IRQHandler, %function
508USB0_NEEDCLK_IRQHandler:
509 ldr r0,=USB0_NEEDCLK_DriverIRQHandler
510 bx r0
511 .size USB0_NEEDCLK_IRQHandler, . - USB0_NEEDCLK_IRQHandler
512
513 .align 1
514 .thumb_func
515 .weak USB0_IRQHandler
516 .type USB0_IRQHandler, %function
517USB0_IRQHandler:
518 ldr r0,=USB0_DriverIRQHandler
519 bx r0
520 .size USB0_IRQHandler, . - USB0_IRQHandler
521
522 .align 1
523 .thumb_func
524 .weak RTC_IRQHandler
525 .type RTC_IRQHandler, %function
526RTC_IRQHandler:
527 ldr r0,=RTC_DriverIRQHandler
528 bx r0
529 .size RTC_IRQHandler, . - RTC_IRQHandler
530
531 .align 1
532 .thumb_func
533 .weak Reserved46_IRQHandler
534 .type Reserved46_IRQHandler, %function
535Reserved46_IRQHandler:
536 ldr r0,=Reserved46_DriverIRQHandler
537 bx r0
538 .size Reserved46_IRQHandler, . - Reserved46_IRQHandler
539
540 .align 1
541 .thumb_func
542 .weak MAILBOX_IRQHandler
543 .type MAILBOX_IRQHandler, %function
544MAILBOX_IRQHandler:
545 ldr r0,=MAILBOX_DriverIRQHandler
546 bx r0
547 .size MAILBOX_IRQHandler, . - MAILBOX_IRQHandler
548
549 .align 1
550 .thumb_func
551 .weak PIN_INT4_IRQHandler
552 .type PIN_INT4_IRQHandler, %function
553PIN_INT4_IRQHandler:
554 ldr r0,=PIN_INT4_DriverIRQHandler
555 bx r0
556 .size PIN_INT4_IRQHandler, . - PIN_INT4_IRQHandler
557
558 .align 1
559 .thumb_func
560 .weak PIN_INT5_IRQHandler
561 .type PIN_INT5_IRQHandler, %function
562PIN_INT5_IRQHandler:
563 ldr r0,=PIN_INT5_DriverIRQHandler
564 bx r0
565 .size PIN_INT5_IRQHandler, . - PIN_INT5_IRQHandler
566
567 .align 1
568 .thumb_func
569 .weak PIN_INT6_IRQHandler
570 .type PIN_INT6_IRQHandler, %function
571PIN_INT6_IRQHandler:
572 ldr r0,=PIN_INT6_DriverIRQHandler
573 bx r0
574 .size PIN_INT6_IRQHandler, . - PIN_INT6_IRQHandler
575
576 .align 1
577 .thumb_func
578 .weak PIN_INT7_IRQHandler
579 .type PIN_INT7_IRQHandler, %function
580PIN_INT7_IRQHandler:
581 ldr r0,=PIN_INT7_DriverIRQHandler
582 bx r0
583 .size PIN_INT7_IRQHandler, . - PIN_INT7_IRQHandler
584
585 .align 1
586 .thumb_func
587 .weak CTIMER2_IRQHandler
588 .type CTIMER2_IRQHandler, %function
589CTIMER2_IRQHandler:
590 ldr r0,=CTIMER2_DriverIRQHandler
591 bx r0
592 .size CTIMER2_IRQHandler, . - CTIMER2_IRQHandler
593
594 .align 1
595 .thumb_func
596 .weak CTIMER4_IRQHandler
597 .type CTIMER4_IRQHandler, %function
598CTIMER4_IRQHandler:
599 ldr r0,=CTIMER4_DriverIRQHandler
600 bx r0
601 .size CTIMER4_IRQHandler, . - CTIMER4_IRQHandler
602
603 .align 1
604 .thumb_func
605 .weak OS_EVENT_IRQHandler
606 .type OS_EVENT_IRQHandler, %function
607OS_EVENT_IRQHandler:
608 ldr r0,=OS_EVENT_DriverIRQHandler
609 bx r0
610 .size OS_EVENT_IRQHandler, . - OS_EVENT_IRQHandler
611
612 .align 1
613 .thumb_func
614 .weak Reserved55_IRQHandler
615 .type Reserved55_IRQHandler, %function
616Reserved55_IRQHandler:
617 ldr r0,=Reserved55_DriverIRQHandler
618 bx r0
619 .size Reserved55_IRQHandler, . - Reserved55_IRQHandler
620
621 .align 1
622 .thumb_func
623 .weak Reserved56_IRQHandler
624 .type Reserved56_IRQHandler, %function
625Reserved56_IRQHandler:
626 ldr r0,=Reserved56_DriverIRQHandler
627 bx r0
628 .size Reserved56_IRQHandler, . - Reserved56_IRQHandler
629
630 .align 1
631 .thumb_func
632 .weak Reserved57_IRQHandler
633 .type Reserved57_IRQHandler, %function
634Reserved57_IRQHandler:
635 ldr r0,=Reserved57_DriverIRQHandler
636 bx r0
637 .size Reserved57_IRQHandler, . - Reserved57_IRQHandler
638
639 .align 1
640 .thumb_func
641 .weak SDIO_IRQHandler
642 .type SDIO_IRQHandler, %function
643SDIO_IRQHandler:
644 ldr r0,=SDIO_DriverIRQHandler
645 bx r0
646 .size SDIO_IRQHandler, . - SDIO_IRQHandler
647
648 .align 1
649 .thumb_func
650 .weak Reserved59_IRQHandler
651 .type Reserved59_IRQHandler, %function
652Reserved59_IRQHandler:
653 ldr r0,=Reserved59_DriverIRQHandler
654 bx r0
655 .size Reserved59_IRQHandler, . - Reserved59_IRQHandler
656
657 .align 1
658 .thumb_func
659 .weak Reserved60_IRQHandler
660 .type Reserved60_IRQHandler, %function
661Reserved60_IRQHandler:
662 ldr r0,=Reserved60_DriverIRQHandler
663 bx r0
664 .size Reserved60_IRQHandler, . - Reserved60_IRQHandler
665
666 .align 1
667 .thumb_func
668 .weak Reserved61_IRQHandler
669 .type Reserved61_IRQHandler, %function
670Reserved61_IRQHandler:
671 ldr r0,=Reserved61_DriverIRQHandler
672 bx r0
673 .size Reserved61_IRQHandler, . - Reserved61_IRQHandler
674
675 .align 1
676 .thumb_func
677 .weak USB1_PHY_IRQHandler
678 .type USB1_PHY_IRQHandler, %function
679USB1_PHY_IRQHandler:
680 ldr r0,=USB1_PHY_DriverIRQHandler
681 bx r0
682 .size USB1_PHY_IRQHandler, . - USB1_PHY_IRQHandler
683
684 .align 1
685 .thumb_func
686 .weak USB1_IRQHandler
687 .type USB1_IRQHandler, %function
688USB1_IRQHandler:
689 ldr r0,=USB1_DriverIRQHandler
690 bx r0
691 .size USB1_IRQHandler, . - USB1_IRQHandler
692
693 .align 1
694 .thumb_func
695 .weak USB1_NEEDCLK_IRQHandler
696 .type USB1_NEEDCLK_IRQHandler, %function
697USB1_NEEDCLK_IRQHandler:
698 ldr r0,=USB1_NEEDCLK_DriverIRQHandler
699 bx r0
700 .size USB1_NEEDCLK_IRQHandler, . - USB1_NEEDCLK_IRQHandler
701
702 .align 1
703 .thumb_func
704 .weak SEC_HYPERVISOR_CALL_IRQHandler
705 .type SEC_HYPERVISOR_CALL_IRQHandler, %function
706SEC_HYPERVISOR_CALL_IRQHandler:
707 ldr r0,=SEC_HYPERVISOR_CALL_DriverIRQHandler
708 bx r0
709 .size SEC_HYPERVISOR_CALL_IRQHandler, . - SEC_HYPERVISOR_CALL_IRQHandler
710
711 .align 1
712 .thumb_func
713 .weak SEC_GPIO_INT0_IRQ0_IRQHandler
714 .type SEC_GPIO_INT0_IRQ0_IRQHandler, %function
715SEC_GPIO_INT0_IRQ0_IRQHandler:
716 ldr r0,=SEC_GPIO_INT0_IRQ0_DriverIRQHandler
717 bx r0
718 .size SEC_GPIO_INT0_IRQ0_IRQHandler, . - SEC_GPIO_INT0_IRQ0_IRQHandler
719
720 .align 1
721 .thumb_func
722 .weak SEC_GPIO_INT0_IRQ1_IRQHandler
723 .type SEC_GPIO_INT0_IRQ1_IRQHandler, %function
724SEC_GPIO_INT0_IRQ1_IRQHandler:
725 ldr r0,=SEC_GPIO_INT0_IRQ1_DriverIRQHandler
726 bx r0
727 .size SEC_GPIO_INT0_IRQ1_IRQHandler, . - SEC_GPIO_INT0_IRQ1_IRQHandler
728
729 .align 1
730 .thumb_func
731 .weak PLU_IRQHandler
732 .type PLU_IRQHandler, %function
733PLU_IRQHandler:
734 ldr r0,=PLU_DriverIRQHandler
735 bx r0
736 .size PLU_IRQHandler, . - PLU_IRQHandler
737
738 .align 1
739 .thumb_func
740 .weak SEC_VIO_IRQHandler
741 .type SEC_VIO_IRQHandler, %function
742SEC_VIO_IRQHandler:
743 ldr r0,=SEC_VIO_DriverIRQHandler
744 bx r0
745 .size SEC_VIO_IRQHandler, . - SEC_VIO_IRQHandler
746
747 .align 1
748 .thumb_func
749 .weak HASHCRYPT_IRQHandler
750 .type HASHCRYPT_IRQHandler, %function
751HASHCRYPT_IRQHandler:
752 ldr r0,=HASHCRYPT_DriverIRQHandler
753 bx r0
754 .size HASHCRYPT_IRQHandler, . - HASHCRYPT_IRQHandler
755
756 .align 1
757 .thumb_func
758 .weak CASER_IRQHandler
759 .type CASER_IRQHandler, %function
760CASER_IRQHandler:
761 ldr r0,=CASER_DriverIRQHandler
762 bx r0
763 .size CASER_IRQHandler, . - CASER_IRQHandler
764
765 .align 1
766 .thumb_func
767 .weak PUF_IRQHandler
768 .type PUF_IRQHandler, %function
769PUF_IRQHandler:
770 ldr r0,=PUF_DriverIRQHandler
771 bx r0
772 .size PUF_IRQHandler, . - PUF_IRQHandler
773
774 .align 1
775 .thumb_func
776 .weak PQ_IRQHandler
777 .type PQ_IRQHandler, %function
778PQ_IRQHandler:
779 ldr r0,=PQ_DriverIRQHandler
780 bx r0
781 .size PQ_IRQHandler, . - PQ_IRQHandler
782
783 .align 1
784 .thumb_func
785 .weak DMA1_IRQHandler
786 .type DMA1_IRQHandler, %function
787DMA1_IRQHandler:
788 ldr r0,=DMA1_DriverIRQHandler
789 bx r0
790 .size DMA1_IRQHandler, . - DMA1_IRQHandler
791
792 .align 1
793 .thumb_func
794 .weak FLEXCOMM8_IRQHandler
795 .type FLEXCOMM8_IRQHandler, %function
796FLEXCOMM8_IRQHandler:
797 ldr r0,=FLEXCOMM8_DriverIRQHandler
798 bx r0
799 .size FLEXCOMM8_IRQHandler, . - FLEXCOMM8_IRQHandler
800
801/* Macro to define default handlers. Default handler
802 * will be weak symbol and just dead loops. They can be
803 * overwritten by other handlers */
804 .macro def_irq_handler handler_name
805 .weak \handler_name
806 .set \handler_name, DefaultISR
807 .endm
808/* Exception Handlers */
809 def_irq_handler MemManage_Handler
810 def_irq_handler BusFault_Handler
811 def_irq_handler UsageFault_Handler
812 def_irq_handler SecureFault_Handler
813 def_irq_handler DebugMon_Handler
814 def_irq_handler WDT_BOD_DriverIRQHandler
815 def_irq_handler DMA0_DriverIRQHandler
816 def_irq_handler GINT0_DriverIRQHandler
817 def_irq_handler GINT1_DriverIRQHandler
818 def_irq_handler PIN_INT0_DriverIRQHandler
819 def_irq_handler PIN_INT1_DriverIRQHandler
820 def_irq_handler PIN_INT2_DriverIRQHandler
821 def_irq_handler PIN_INT3_DriverIRQHandler
822 def_irq_handler UTICK0_DriverIRQHandler
823 def_irq_handler MRT0_DriverIRQHandler
824 def_irq_handler CTIMER0_DriverIRQHandler
825 def_irq_handler CTIMER1_DriverIRQHandler
826 def_irq_handler SCT0_DriverIRQHandler
827 def_irq_handler CTIMER3_DriverIRQHandler
828 def_irq_handler FLEXCOMM0_DriverIRQHandler
829 def_irq_handler FLEXCOMM1_DriverIRQHandler
830 def_irq_handler FLEXCOMM2_DriverIRQHandler
831 def_irq_handler FLEXCOMM3_DriverIRQHandler
832 def_irq_handler FLEXCOMM4_DriverIRQHandler
833 def_irq_handler FLEXCOMM5_DriverIRQHandler
834 def_irq_handler FLEXCOMM6_DriverIRQHandler
835 def_irq_handler FLEXCOMM7_DriverIRQHandler
836 def_irq_handler ADC0_DriverIRQHandler
837 def_irq_handler Reserved39_DriverIRQHandler
838 def_irq_handler ACMP_DriverIRQHandler
839 def_irq_handler Reserved41_DriverIRQHandler
840 def_irq_handler Reserved42_DriverIRQHandler
841 def_irq_handler USB0_NEEDCLK_DriverIRQHandler
842 def_irq_handler USB0_DriverIRQHandler
843 def_irq_handler RTC_DriverIRQHandler
844 def_irq_handler Reserved46_DriverIRQHandler
845 def_irq_handler MAILBOX_DriverIRQHandler
846 def_irq_handler PIN_INT4_DriverIRQHandler
847 def_irq_handler PIN_INT5_DriverIRQHandler
848 def_irq_handler PIN_INT6_DriverIRQHandler
849 def_irq_handler PIN_INT7_DriverIRQHandler
850 def_irq_handler CTIMER2_DriverIRQHandler
851 def_irq_handler CTIMER4_DriverIRQHandler
852 def_irq_handler OS_EVENT_DriverIRQHandler
853 def_irq_handler Reserved55_DriverIRQHandler
854 def_irq_handler Reserved56_DriverIRQHandler
855 def_irq_handler Reserved57_DriverIRQHandler
856 def_irq_handler SDIO_DriverIRQHandler
857 def_irq_handler Reserved59_DriverIRQHandler
858 def_irq_handler Reserved60_DriverIRQHandler
859 def_irq_handler Reserved61_DriverIRQHandler
860 def_irq_handler USB1_PHY_DriverIRQHandler
861 def_irq_handler USB1_DriverIRQHandler
862 def_irq_handler USB1_NEEDCLK_DriverIRQHandler
863 def_irq_handler SEC_HYPERVISOR_CALL_DriverIRQHandler
864 def_irq_handler SEC_GPIO_INT0_IRQ0_DriverIRQHandler
865 def_irq_handler SEC_GPIO_INT0_IRQ1_DriverIRQHandler
866 def_irq_handler PLU_DriverIRQHandler
867 def_irq_handler SEC_VIO_DriverIRQHandler
868 def_irq_handler HASHCRYPT_DriverIRQHandler
869 def_irq_handler CASER_DriverIRQHandler
870 def_irq_handler PUF_DriverIRQHandler
871 def_irq_handler PQ_DriverIRQHandler
872 def_irq_handler DMA1_DriverIRQHandler
873 def_irq_handler FLEXCOMM8_DriverIRQHandler
874
875 .end
diff --git a/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/startup_LPC55S69_cm33_core1.S b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/startup_LPC55S69_cm33_core1.S
new file mode 100644
index 000000000..375866a8d
--- /dev/null
+++ b/lib/chibios-contrib/ext/mcux-sdk/devices/LPC55S69/gcc/startup_LPC55S69_cm33_core1.S
@@ -0,0 +1,875 @@
1/* --------------------------------------------------------------------------*/
2/* @file: startup_LPC55S69_cm33_core1.s */
3/* @purpose: CMSIS Cortex-M33 Core Device Startup File */
4/* LPC55S69_cm33_core1 */
5/* @version: 1.1 */
6/* @date: 2019-5-16 */
7/* --------------------------------------------------------------------------*/
8/* */
9/* Copyright 1997-2016 Freescale Semiconductor, Inc. */
10/* Copyright 2016-2019 NXP */
11/* All rights reserved. */
12/* */
13/* SPDX-License-Identifier: BSD-3-Clause */
14/*****************************************************************************/
15/* Version: GCC for ARM Embedded Processors */
16/*****************************************************************************/
17
18
19 .syntax unified
20 .arch armv8-m.main
21
22 .section .isr_vector, "a"
23 .align 2
24 .globl __Vectors
25__Vectors:
26 .long __StackTop /* Top of Stack */
27 .long Reset_Handler /* Reset Handler */
28 .long NMI_Handler /* NMI Handler*/
29 .long HardFault_Handler /* Hard Fault Handler*/
30 .long MemManage_Handler /* MPU Fault Handler*/
31 .long BusFault_Handler /* Bus Fault Handler*/
32 .long UsageFault_Handler /* Usage Fault Handler*/
33 .long SecureFault_Handler /* Secure Fault Handler*/
34 .long 0 /* Reserved*/
35 .long 0 /* Reserved*/
36 .long 0 /* Reserved*/
37 .long SVC_Handler /* SVCall Handler*/
38 .long DebugMon_Handler /* Debug Monitor Handler*/
39 .long 0 /* Reserved*/
40 .long PendSV_Handler /* PendSV Handler*/
41 .long SysTick_Handler /* SysTick Handler*/
42
43 /* External Interrupts */
44 .long WDT_BOD_IRQHandler /* Windowed watchdog timer, Brownout detect, Flash interrupt */
45 .long DMA0_IRQHandler /* DMA0 controller */
46 .long GINT0_IRQHandler /* GPIO group 0 */
47 .long GINT1_IRQHandler /* GPIO group 1 */
48 .long PIN_INT0_IRQHandler /* Pin interrupt 0 or pattern match engine slice 0 */
49 .long PIN_INT1_IRQHandler /* Pin interrupt 1or pattern match engine slice 1 */
50 .long PIN_INT2_IRQHandler /* Pin interrupt 2 or pattern match engine slice 2 */
51 .long PIN_INT3_IRQHandler /* Pin interrupt 3 or pattern match engine slice 3 */
52 .long UTICK0_IRQHandler /* Micro-tick Timer */
53 .long MRT0_IRQHandler /* Multi-rate timer */
54 .long CTIMER0_IRQHandler /* Standard counter/timer CTIMER0 */
55 .long CTIMER1_IRQHandler /* Standard counter/timer CTIMER1 */
56 .long SCT0_IRQHandler /* SCTimer/PWM */
57 .long CTIMER3_IRQHandler /* Standard counter/timer CTIMER3 */
58 .long FLEXCOMM0_IRQHandler /* Flexcomm Interface 0 (USART, SPI, I2C, I2S, FLEXCOMM) */
59 .long FLEXCOMM1_IRQHandler /* Flexcomm Interface 1 (USART, SPI, I2C, I2S, FLEXCOMM) */
60 .long FLEXCOMM2_IRQHandler /* Flexcomm Interface 2 (USART, SPI, I2C, I2S, FLEXCOMM) */
61 .long FLEXCOMM3_IRQHandler /* Flexcomm Interface 3 (USART, SPI, I2C, I2S, FLEXCOMM) */
62 .long FLEXCOMM4_IRQHandler /* Flexcomm Interface 4 (USART, SPI, I2C, I2S, FLEXCOMM) */
63 .long FLEXCOMM5_IRQHandler /* Flexcomm Interface 5 (USART, SPI, I2C, I2S, FLEXCOMM) */
64 .long FLEXCOMM6_IRQHandler /* Flexcomm Interface 6 (USART, SPI, I2C, I2S, FLEXCOMM) */
65 .long FLEXCOMM7_IRQHandler /* Flexcomm Interface 7 (USART, SPI, I2C, I2S, FLEXCOMM) */
66 .long ADC0_IRQHandler /* ADC0 */
67 .long Reserved39_IRQHandler /* Reserved interrupt */
68 .long ACMP_IRQHandler /* ACMP interrupts */
69 .long Reserved41_IRQHandler /* Reserved interrupt */
70 .long Reserved42_IRQHandler /* Reserved interrupt */
71 .long USB0_NEEDCLK_IRQHandler /* USB Activity Wake-up Interrupt */
72 .long USB0_IRQHandler /* USB device */
73 .long RTC_IRQHandler /* RTC alarm and wake-up interrupts */
74 .long Reserved46_IRQHandler /* Reserved interrupt */
75 .long MAILBOX_IRQHandler /* WAKEUP,Mailbox interrupt (present on selected devices) */
76 .long PIN_INT4_IRQHandler /* Pin interrupt 4 or pattern match engine slice 4 int */
77 .long PIN_INT5_IRQHandler /* Pin interrupt 5 or pattern match engine slice 5 int */
78 .long PIN_INT6_IRQHandler /* Pin interrupt 6 or pattern match engine slice 6 int */
79 .long PIN_INT7_IRQHandler /* Pin interrupt 7 or pattern match engine slice 7 int */
80 .long CTIMER2_IRQHandler /* Standard counter/timer CTIMER2 */
81 .long CTIMER4_IRQHandler /* Standard counter/timer CTIMER4 */
82 .long OS_EVENT_IRQHandler /* OSEVTIMER0 and OSEVTIMER0_WAKEUP interrupts */
83 .long Reserved55_IRQHandler /* Reserved interrupt */
84 .long Reserved56_IRQHandler /* Reserved interrupt */
85 .long Reserved57_IRQHandler /* Reserved interrupt */
86 .long SDIO_IRQHandler /* SD/MMC */
87 .long Reserved59_IRQHandler /* Reserved interrupt */
88 .long Reserved60_IRQHandler /* Reserved interrupt */
89 .long Reserved61_IRQHandler /* Reserved interrupt */
90 .long USB1_PHY_IRQHandler /* USB1_PHY */
91 .long USB1_IRQHandler /* USB1 interrupt */
92 .long USB1_NEEDCLK_IRQHandler /* USB1 activity */
93 .long SEC_HYPERVISOR_CALL_IRQHandler /* SEC_HYPERVISOR_CALL interrupt */
94 .long SEC_GPIO_INT0_IRQ0_IRQHandler /* SEC_GPIO_INT0_IRQ0 interrupt */
95 .long SEC_GPIO_INT0_IRQ1_IRQHandler /* SEC_GPIO_INT0_IRQ1 interrupt */
96 .long PLU_IRQHandler /* PLU interrupt */
97 .long SEC_VIO_IRQHandler /* SEC_VIO interrupt */
98 .long HASHCRYPT_IRQHandler /* HASHCRYPT interrupt */
99 .long CASER_IRQHandler /* CASPER interrupt */
100 .long PUF_IRQHandler /* PUF interrupt */
101 .long PQ_IRQHandler /* PQ interrupt */
102 .long DMA1_IRQHandler /* DMA1 interrupt */
103 .long FLEXCOMM8_IRQHandler /* Flexcomm Interface 8 (SPI, , FLEXCOMM) */
104
105 .size __Vectors, . - __Vectors
106
107 .text
108 .thumb
109
110/* Reset Handler */
111 .thumb_func
112 .align 2
113 .globl Reset_Handler
114 .weak Reset_Handler
115 .type Reset_Handler, %function
116Reset_Handler:
117#ifndef __NO_SYSTEM_INIT
118 ldr r0,=SystemInit
119 blx r0
120#endif
121/* Loop to copy data from read only memory to RAM. The ranges
122 * of copy from/to are specified by following symbols evaluated in
123 * linker script.
124 * __etext: End of code section, i.e., begin of data sections to copy from.
125 * __data_start__/__data_end__: RAM address range that data should be
126 * copied to. Both must be aligned to 4 bytes boundary. */
127
128 ldr r1, =__etext
129 ldr r2, =__data_start__
130 ldr r3, =__data_end__
131
132#if 1
133/* Here are two copies of loop implemenations. First one favors code size
134 * and the second one favors performance. Default uses the first one.
135 * Change to "#if 0" to use the second one */
136.LC0:
137 cmp r2, r3
138 ittt lt
139 ldrlt r0, [r1], #4
140 strlt r0, [r2], #4
141 blt .LC0
142#else
143 subs r3, r2
144 ble .LC1
145.LC0:
146 subs r3, #4
147 ldr r0, [r1, r3]
148 str r0, [r2, r3]
149 bgt .LC0
150.LC1:
151#endif
152
153#ifdef __STARTUP_CLEAR_BSS
154/* This part of work usually is done in C library startup code. Otherwise,
155 * define this macro to enable it in this startup.
156 *
157 * Loop to zero out BSS section, which uses following symbols
158 * in linker script:
159 * __bss_start__: start of BSS section. Must align to 4
160 * __bss_end__: end of BSS section. Must align to 4
161 */
162 ldr r1, =__bss_start__
163 ldr r2, =__bss_end__
164
165 movs r0, 0
166.LC2:
167 cmp r1, r2
168 itt lt
169 strlt r0, [r1], #4
170 blt .LC2
171#endif /* __STARTUP_CLEAR_BSS */
172
173/* Add stack / heap initializaiton */
174 movs r0, 0
175 ldr r1, =__HeapBase
176 ldr r2, =__HeapLimit
177.LC3:
178 cmp r1, r2
179 itt lt
180 strlt r0, [r1], #4
181 blt .LC3
182
183 ldr r1, =__StackLimit
184 ldr r2, =__StackTop
185.LC4:
186 cmp r1, r2
187 itt lt
188 strlt r0, [r1], #4
189 blt .LC4
190/*End of stack / heap initializaiton */
191 cpsie i /* Unmask interrupts */
192
193#ifndef __START
194#define __START _start
195#endif
196#ifndef __ATOLLIC__
197 ldr r0,=__START
198 blx r0
199#else
200 ldr r0,=__libc_init_array
201 blx r0
202 ldr r0,=main
203 bx r0
204#endif
205 .pool
206 .size Reset_Handler, . - Reset_Handler
207
208 .align 1
209 .thumb_func
210 .weak DefaultISR
211 .type DefaultISR, %function
212DefaultISR:
213 b DefaultISR
214 .size DefaultISR, . - DefaultISR
215
216 .align 1
217 .thumb_func
218 .weak NMI_Handler
219 .type NMI_Handler, %function
220NMI_Handler:
221 ldr r0,=NMI_Handler
222 bx r0
223 .size NMI_Handler, . - NMI_Handler
224
225 .align 1
226 .thumb_func
227 .weak HardFault_Handler
228 .type HardFault_Handler, %function
229HardFault_Handler:
230 ldr r0,=HardFault_Handler
231 bx r0
232 .size HardFault_Handler, . - HardFault_Handler
233
234 .align 1
235 .thumb_func
236 .weak SVC_Handler
237 .type SVC_Handler, %function
238SVC_Handler:
239 ldr r0,=SVC_Handler
240 bx r0
241 .size SVC_Handler, . - SVC_Handler
242
243 .align 1
244 .thumb_func
245 .weak PendSV_Handler
246 .type PendSV_Handler, %function
247PendSV_Handler:
248 ldr r0,=PendSV_Handler
249 bx r0
250 .size PendSV_Handler, . - PendSV_Handler
251
252 .align 1
253 .thumb_func
254 .weak SysTick_Handler
255 .type SysTick_Handler, %function
256SysTick_Handler:
257 ldr r0,=SysTick_Handler
258 bx r0
259 .size SysTick_Handler, . - SysTick_Handler
260
261 .align 1
262 .thumb_func
263 .weak WDT_BOD_IRQHandler
264 .type WDT_BOD_IRQHandler, %function
265WDT_BOD_IRQHandler:
266 ldr r0,=WDT_BOD_DriverIRQHandler
267 bx r0
268 .size WDT_BOD_IRQHandler, . - WDT_BOD_IRQHandler
269
270 .align 1
271 .thumb_func
272 .weak DMA0_IRQHandler
273 .type DMA0_IRQHandler, %function
274DMA0_IRQHandler:
275 ldr r0,=DMA0_DriverIRQHandler
276 bx r0
277 .size DMA0_IRQHandler, . - DMA0_IRQHandler
278
279 .align 1
280 .thumb_func
281 .weak GINT0_IRQHandler
282 .type GINT0_IRQHandler, %function
283GINT0_IRQHandler:
284 ldr r0,=GINT0_DriverIRQHandler
285 bx r0
286 .size GINT0_IRQHandler, . - GINT0_IRQHandler
287
288 .align 1
289 .thumb_func
290 .weak GINT1_IRQHandler
291 .type GINT1_IRQHandler, %function
292GINT1_IRQHandler:
293 ldr r0,=GINT1_DriverIRQHandler
294 bx r0
295 .size GINT1_IRQHandler, . - GINT1_IRQHandler
296
297 .align 1
298 .thumb_func
299 .weak PIN_INT0_IRQHandler
300 .type PIN_INT0_IRQHandler, %function
301PIN_INT0_IRQHandler:
302 ldr r0,=PIN_INT0_DriverIRQHandler
303 bx r0
304 .size PIN_INT0_IRQHandler, . - PIN_INT0_IRQHandler
305
306 .align 1
307 .thumb_func
308 .weak PIN_INT1_IRQHandler
309 .type PIN_INT1_IRQHandler, %function
310PIN_INT1_IRQHandler:
311 ldr r0,=PIN_INT1_DriverIRQHandler
312 bx r0
313 .size PIN_INT1_IRQHandler, . - PIN_INT1_IRQHandler
314
315 .align 1
316 .thumb_func
317 .weak PIN_INT2_IRQHandler
318 .type PIN_INT2_IRQHandler, %function
319PIN_INT2_IRQHandler:
320 ldr r0,=PIN_INT2_DriverIRQHandler
321 bx r0
322 .size PIN_INT2_IRQHandler, . - PIN_INT2_IRQHandler
323
324 .align 1
325 .thumb_func
326 .weak PIN_INT3_IRQHandler
327 .type PIN_INT3_IRQHandler, %function
328PIN_INT3_IRQHandler:
329 ldr r0,=PIN_INT3_DriverIRQHandler
330 bx r0
331 .size PIN_INT3_IRQHandler, . - PIN_INT3_IRQHandler
332
333 .align 1
334 .thumb_func
335 .weak UTICK0_IRQHandler
336 .type UTICK0_IRQHandler, %function
337UTICK0_IRQHandler:
338 ldr r0,=UTICK0_DriverIRQHandler
339 bx r0
340 .size UTICK0_IRQHandler, . - UTICK0_IRQHandler
341
342 .align 1
343 .thumb_func
344 .weak MRT0_IRQHandler
345 .type MRT0_IRQHandler, %function
346MRT0_IRQHandler:
347 ldr r0,=MRT0_DriverIRQHandler
348 bx r0
349 .size MRT0_IRQHandler, . - MRT0_IRQHandler
350
351 .align 1
352 .thumb_func
353 .weak CTIMER0_IRQHandler
354 .type CTIMER0_IRQHandler, %function
355CTIMER0_IRQHandler:
356 ldr r0,=CTIMER0_DriverIRQHandler
357 bx r0
358 .size CTIMER0_IRQHandler, . - CTIMER0_IRQHandler
359
360 .align 1
361 .thumb_func
362 .weak CTIMER1_IRQHandler
363 .type CTIMER1_IRQHandler, %function
364CTIMER1_IRQHandler:
365 ldr r0,=CTIMER1_DriverIRQHandler
366 bx r0
367 .size CTIMER1_IRQHandler, . - CTIMER1_IRQHandler
368
369 .align 1
370 .thumb_func
371 .weak SCT0_IRQHandler
372 .type SCT0_IRQHandler, %function
373SCT0_IRQHandler:
374 ldr r0,=SCT0_DriverIRQHandler
375 bx r0
376 .size SCT0_IRQHandler, . - SCT0_IRQHandler
377
378 .align 1
379 .thumb_func
380 .weak CTIMER3_IRQHandler
381 .type CTIMER3_IRQHandler, %function
382CTIMER3_IRQHandler:
383 ldr r0,=CTIMER3_DriverIRQHandler
384 bx r0
385 .size CTIMER3_IRQHandler, . - CTIMER3_IRQHandler
386
387 .align 1
388 .thumb_func
389 .weak FLEXCOMM0_IRQHandler
390 .type FLEXCOMM0_IRQHandler, %function
391FLEXCOMM0_IRQHandler:
392 ldr r0,=FLEXCOMM0_DriverIRQHandler
393 bx r0
394 .size FLEXCOMM0_IRQHandler, . - FLEXCOMM0_IRQHandler
395
396 .align 1
397 .thumb_func
398 .weak FLEXCOMM1_IRQHandler
399 .type FLEXCOMM1_IRQHandler, %function
400FLEXCOMM1_IRQHandler:
401 ldr r0,=FLEXCOMM1_DriverIRQHandler
402 bx r0
403 .size FLEXCOMM1_IRQHandler, . - FLEXCOMM1_IRQHandler
404
405 .align 1
406 .thumb_func
407 .weak FLEXCOMM2_IRQHandler
408 .type FLEXCOMM2_IRQHandler, %function
409FLEXCOMM2_IRQHandler:
410 ldr r0,=FLEXCOMM2_DriverIRQHandler
411 bx r0
412 .size FLEXCOMM2_IRQHandler, . - FLEXCOMM2_IRQHandler
413
414 .align 1
415 .thumb_func
416 .weak FLEXCOMM3_IRQHandler
417 .type FLEXCOMM3_IRQHandler, %function
418FLEXCOMM3_IRQHandler:
419 ldr r0,=FLEXCOMM3_DriverIRQHandler
420 bx r0
421 .size FLEXCOMM3_IRQHandler, . - FLEXCOMM3_IRQHandler
422
423 .align 1
424 .thumb_func
425 .weak FLEXCOMM4_IRQHandler
426 .type FLEXCOMM4_IRQHandler, %function
427FLEXCOMM4_IRQHandler:
428 ldr r0,=FLEXCOMM4_DriverIRQHandler
429 bx r0
430 .size FLEXCOMM4_IRQHandler, . - FLEXCOMM4_IRQHandler
431
432 .align 1
433 .thumb_func
434 .weak FLEXCOMM5_IRQHandler
435 .type FLEXCOMM5_IRQHandler, %function
436FLEXCOMM5_IRQHandler:
437 ldr r0,=FLEXCOMM5_DriverIRQHandler
438 bx r0
439 .size FLEXCOMM5_IRQHandler, . - FLEXCOMM5_IRQHandler
440
441 .align 1
442 .thumb_func
443 .weak FLEXCOMM6_IRQHandler
444 .type FLEXCOMM6_IRQHandler, %function
445FLEXCOMM6_IRQHandler:
446 ldr r0,=FLEXCOMM6_DriverIRQHandler
447 bx r0
448 .size FLEXCOMM6_IRQHandler, . - FLEXCOMM6_IRQHandler
449
450 .align 1
451 .thumb_func
452 .weak FLEXCOMM7_IRQHandler
453 .type FLEXCOMM7_IRQHandler, %function
454FLEXCOMM7_IRQHandler:
455 ldr r0,=FLEXCOMM7_DriverIRQHandler
456 bx r0
457 .size FLEXCOMM7_IRQHandler, . - FLEXCOMM7_IRQHandler
458
459 .align 1
460 .thumb_func
461 .weak ADC0_IRQHandler
462 .type ADC0_IRQHandler, %function
463ADC0_IRQHandler:
464 ldr r0,=ADC0_DriverIRQHandler
465 bx r0
466 .size ADC0_IRQHandler, . - ADC0_IRQHandler
467
468 .align 1
469 .thumb_func
470 .weak Reserved39_IRQHandler
471 .type Reserved39_IRQHandler, %function
472Reserved39_IRQHandler:
473 ldr r0,=Reserved39_DriverIRQHandler
474 bx r0
475 .size Reserved39_IRQHandler, . - Reserved39_IRQHandler
476
477 .align 1
478 .thumb_func
479 .weak ACMP_IRQHandler
480 .type ACMP_IRQHandler, %function
481ACMP_IRQHandler:
482 ldr r0,=ACMP_DriverIRQHandler
483 bx r0
484 .size ACMP_IRQHandler, . - ACMP_IRQHandler
485
486 .align 1
487 .thumb_func
488 .weak Reserved41_IRQHandler
489 .type Reserved41_IRQHandler, %function
490Reserved41_IRQHandler:
491 ldr r0,=Reserved41_DriverIRQHandler
492 bx r0
493 .size Reserved41_IRQHandler, . - Reserved41_IRQHandler
494
495 .align 1
496 .thumb_func
497 .weak Reserved42_IRQHandler
498 .type Reserved42_IRQHandler, %function
499Reserved42_IRQHandler:
500 ldr r0,=Reserved42_DriverIRQHandler
501 bx r0
502 .size Reserved42_IRQHandler, . - Reserved42_IRQHandler
503
504 .align 1
505 .thumb_func
506 .weak USB0_NEEDCLK_IRQHandler
507 .type USB0_NEEDCLK_IRQHandler, %function
508USB0_NEEDCLK_IRQHandler:
509 ldr r0,=USB0_NEEDCLK_DriverIRQHandler
510 bx r0
511 .size USB0_NEEDCLK_IRQHandler, . - USB0_NEEDCLK_IRQHandler
512
513 .align 1
514 .thumb_func
515 .weak USB0_IRQHandler
516 .type USB0_IRQHandler, %function
517USB0_IRQHandler:
518 ldr r0,=USB0_DriverIRQHandler
519 bx r0
520 .size USB0_IRQHandler, . - USB0_IRQHandler
521
522 .align 1
523 .thumb_func
524 .weak RTC_IRQHandler
525 .type RTC_IRQHandler, %function
526RTC_IRQHandler:
527 ldr r0,=RTC_DriverIRQHandler
528 bx r0
529 .size RTC_IRQHandler, . - RTC_IRQHandler
530
531 .align 1
532 .thumb_func
533 .weak Reserved46_IRQHandler
534 .type Reserved46_IRQHandler, %function
535Reserved46_IRQHandler:
536 ldr r0,=Reserved46_DriverIRQHandler
537 bx r0
538 .size Reserved46_IRQHandler, . - Reserved46_IRQHandler
539
540 .align 1
541 .thumb_func
542 .weak MAILBOX_IRQHandler
543 .type MAILBOX_IRQHandler, %function
544MAILBOX_IRQHandler:
545 ldr r0,=MAILBOX_DriverIRQHandler
546 bx r0
547 .size MAILBOX_IRQHandler, . - MAILBOX_IRQHandler
548
549 .align 1
550 .thumb_func
551 .weak PIN_INT4_IRQHandler
552 .type PIN_INT4_IRQHandler, %function
553PIN_INT4_IRQHandler:
554 ldr r0,=PIN_INT4_DriverIRQHandler
555 bx r0
556 .size PIN_INT4_IRQHandler, . - PIN_INT4_IRQHandler
557
558 .align 1
559 .thumb_func
560 .weak PIN_INT5_IRQHandler
561 .type PIN_INT5_IRQHandler, %function
562PIN_INT5_IRQHandler:
563 ldr r0,=PIN_INT5_DriverIRQHandler
564 bx r0
565 .size PIN_INT5_IRQHandler, . - PIN_INT5_IRQHandler
566
567 .align 1
568 .thumb_func
569 .weak PIN_INT6_IRQHandler
570 .type PIN_INT6_IRQHandler, %function
571PIN_INT6_IRQHandler:
572 ldr r0,=PIN_INT6_DriverIRQHandler
573 bx r0
574 .size PIN_INT6_IRQHandler, . - PIN_INT6_IRQHandler
575
576 .align 1
577 .thumb_func
578 .weak PIN_INT7_IRQHandler
579 .type PIN_INT7_IRQHandler, %function
580PIN_INT7_IRQHandler:
581 ldr r0,=PIN_INT7_DriverIRQHandler
582 bx r0
583 .size PIN_INT7_IRQHandler, . - PIN_INT7_IRQHandler
584
585 .align 1
586 .thumb_func
587 .weak CTIMER2_IRQHandler
588 .type CTIMER2_IRQHandler, %function
589CTIMER2_IRQHandler:
590 ldr r0,=CTIMER2_DriverIRQHandler
591 bx r0
592 .size CTIMER2_IRQHandler, . - CTIMER2_IRQHandler
593
594 .align 1
595 .thumb_func
596 .weak CTIMER4_IRQHandler
597 .type CTIMER4_IRQHandler, %function
598CTIMER4_IRQHandler:
599 ldr r0,=CTIMER4_DriverIRQHandler
600 bx r0
601 .size CTIMER4_IRQHandler, . - CTIMER4_IRQHandler
602
603 .align 1
604 .thumb_func
605 .weak OS_EVENT_IRQHandler
606 .type OS_EVENT_IRQHandler, %function
607OS_EVENT_IRQHandler:
608 ldr r0,=OS_EVENT_DriverIRQHandler
609 bx r0
610 .size OS_EVENT_IRQHandler, . - OS_EVENT_IRQHandler
611
612 .align 1
613 .thumb_func
614 .weak Reserved55_IRQHandler
615 .type Reserved55_IRQHandler, %function
616Reserved55_IRQHandler:
617 ldr r0,=Reserved55_DriverIRQHandler
618 bx r0
619 .size Reserved55_IRQHandler, . - Reserved55_IRQHandler
620
621 .align 1
622 .thumb_func
623 .weak Reserved56_IRQHandler
624 .type Reserved56_IRQHandler, %function
625Reserved56_IRQHandler:
626 ldr r0,=Reserved56_DriverIRQHandler
627 bx r0
628 .size Reserved56_IRQHandler, . - Reserved56_IRQHandler
629
630 .align 1
631 .thumb_func
632 .weak Reserved57_IRQHandler
633 .type Reserved57_IRQHandler, %function
634Reserved57_IRQHandler:
635 ldr r0,=Reserved57_DriverIRQHandler
636 bx r0
637 .size Reserved57_IRQHandler, . - Reserved57_IRQHandler
638
639 .align 1
640 .thumb_func
641 .weak SDIO_IRQHandler
642 .type SDIO_IRQHandler, %function
643SDIO_IRQHandler:
644 ldr r0,=SDIO_DriverIRQHandler
645 bx r0
646 .size SDIO_IRQHandler, . - SDIO_IRQHandler
647
648 .align 1
649 .thumb_func
650 .weak Reserved59_IRQHandler
651 .type Reserved59_IRQHandler, %function
652Reserved59_IRQHandler:
653 ldr r0,=Reserved59_DriverIRQHandler
654 bx r0
655 .size Reserved59_IRQHandler, . - Reserved59_IRQHandler
656
657 .align 1
658 .thumb_func
659 .weak Reserved60_IRQHandler
660 .type Reserved60_IRQHandler, %function
661Reserved60_IRQHandler:
662 ldr r0,=Reserved60_DriverIRQHandler
663 bx r0
664 .size Reserved60_IRQHandler, . - Reserved60_IRQHandler
665
666 .align 1
667 .thumb_func
668 .weak Reserved61_IRQHandler
669 .type Reserved61_IRQHandler, %function
670Reserved61_IRQHandler:
671 ldr r0,=Reserved61_DriverIRQHandler
672 bx r0
673 .size Reserved61_IRQHandler, . - Reserved61_IRQHandler
674
675 .align 1
676 .thumb_func
677 .weak USB1_PHY_IRQHandler
678 .type USB1_PHY_IRQHandler, %function
679USB1_PHY_IRQHandler:
680 ldr r0,=USB1_PHY_DriverIRQHandler
681 bx r0
682 .size USB1_PHY_IRQHandler, . - USB1_PHY_IRQHandler
683
684 .align 1
685 .thumb_func
686 .weak USB1_IRQHandler
687 .type USB1_IRQHandler, %function
688USB1_IRQHandler:
689 ldr r0,=USB1_DriverIRQHandler
690 bx r0
691 .size USB1_IRQHandler, . - USB1_IRQHandler
692
693 .align 1
694 .thumb_func
695 .weak USB1_NEEDCLK_IRQHandler
696 .type USB1_NEEDCLK_IRQHandler, %function
697USB1_NEEDCLK_IRQHandler:
698 ldr r0,=USB1_NEEDCLK_DriverIRQHandler
699 bx r0
700 .size USB1_NEEDCLK_IRQHandler, . - USB1_NEEDCLK_IRQHandler
701
702 .align 1
703 .thumb_func
704 .weak SEC_HYPERVISOR_CALL_IRQHandler
705 .type SEC_HYPERVISOR_CALL_IRQHandler, %function
706SEC_HYPERVISOR_CALL_IRQHandler:
707 ldr r0,=SEC_HYPERVISOR_CALL_DriverIRQHandler
708 bx r0
709 .size SEC_HYPERVISOR_CALL_IRQHandler, . - SEC_HYPERVISOR_CALL_IRQHandler
710
711 .align 1
712 .thumb_func
713 .weak SEC_GPIO_INT0_IRQ0_IRQHandler
714 .type SEC_GPIO_INT0_IRQ0_IRQHandler, %function
715SEC_GPIO_INT0_IRQ0_IRQHandler:
716 ldr r0,=SEC_GPIO_INT0_IRQ0_DriverIRQHandler
717 bx r0
718 .size SEC_GPIO_INT0_IRQ0_IRQHandler, . - SEC_GPIO_INT0_IRQ0_IRQHandler
719
720 .align 1
721 .thumb_func
722 .weak SEC_GPIO_INT0_IRQ1_IRQHandler
723 .type SEC_GPIO_INT0_IRQ1_IRQHandler, %function
724SEC_GPIO_INT0_IRQ1_IRQHandler:
725 ldr r0,=SEC_GPIO_INT0_IRQ1_DriverIRQHandler
726 bx r0
727 .size SEC_GPIO_INT0_IRQ1_IRQHandler, . - SEC_GPIO_INT0_IRQ1_IRQHandler
728
729 .align 1
730 .thumb_func
731 .weak PLU_IRQHandler
732 .type PLU_IRQHandler, %function
733PLU_IRQHandler:
734 ldr r0,=PLU_DriverIRQHandler
735 bx r0
736 .size PLU_IRQHandler, . - PLU_IRQHandler
737
738 .align 1
739 .thumb_func
740 .weak SEC_VIO_IRQHandler
741 .type SEC_VIO_IRQHandler, %function
742SEC_VIO_IRQHandler:
743 ldr r0,=SEC_VIO_DriverIRQHandler
744 bx r0
745 .size SEC_VIO_IRQHandler, . - SEC_VIO_IRQHandler
746
747 .align 1
748 .thumb_func
749 .weak HASHCRYPT_IRQHandler
750 .type HASHCRYPT_IRQHandler, %function
751HASHCRYPT_IRQHandler:
752 ldr r0,=HASHCRYPT_DriverIRQHandler
753 bx r0
754 .size HASHCRYPT_IRQHandler, . - HASHCRYPT_IRQHandler
755
756 .align 1
757 .thumb_func
758 .weak CASER_IRQHandler
759 .type CASER_IRQHandler, %function
760CASER_IRQHandler:
761 ldr r0,=CASER_DriverIRQHandler
762 bx r0
763 .size CASER_IRQHandler, . - CASER_IRQHandler
764
765 .align 1
766 .thumb_func
767 .weak PUF_IRQHandler
768 .type PUF_IRQHandler, %function
769PUF_IRQHandler:
770 ldr r0,=PUF_DriverIRQHandler
771 bx r0
772 .size PUF_IRQHandler, . - PUF_IRQHandler
773
774 .align 1
775 .thumb_func
776 .weak PQ_IRQHandler
777 .type PQ_IRQHandler, %function
778PQ_IRQHandler:
779 ldr r0,=PQ_DriverIRQHandler
780 bx r0
781 .size PQ_IRQHandler, . - PQ_IRQHandler
782
783 .align 1
784 .thumb_func
785 .weak DMA1_IRQHandler
786 .type DMA1_IRQHandler, %function
787DMA1_IRQHandler:
788 ldr r0,=DMA1_DriverIRQHandler
789 bx r0
790 .size DMA1_IRQHandler, . - DMA1_IRQHandler
791
792 .align 1
793 .thumb_func
794 .weak FLEXCOMM8_IRQHandler
795 .type FLEXCOMM8_IRQHandler, %function
796FLEXCOMM8_IRQHandler:
797 ldr r0,=FLEXCOMM8_DriverIRQHandler
798 bx r0
799 .size FLEXCOMM8_IRQHandler, . - FLEXCOMM8_IRQHandler
800
801/* Macro to define default handlers. Default handler
802 * will be weak symbol and just dead loops. They can be
803 * overwritten by other handlers */
804 .macro def_irq_handler handler_name
805 .weak \handler_name
806 .set \handler_name, DefaultISR
807 .endm
808/* Exception Handlers */
809 def_irq_handler MemManage_Handler
810 def_irq_handler BusFault_Handler
811 def_irq_handler UsageFault_Handler
812 def_irq_handler SecureFault_Handler
813 def_irq_handler DebugMon_Handler
814 def_irq_handler WDT_BOD_DriverIRQHandler
815 def_irq_handler DMA0_DriverIRQHandler
816 def_irq_handler GINT0_DriverIRQHandler
817 def_irq_handler GINT1_DriverIRQHandler
818 def_irq_handler PIN_INT0_DriverIRQHandler
819 def_irq_handler PIN_INT1_DriverIRQHandler
820 def_irq_handler PIN_INT2_DriverIRQHandler
821 def_irq_handler PIN_INT3_DriverIRQHandler
822 def_irq_handler UTICK0_DriverIRQHandler
823 def_irq_handler MRT0_DriverIRQHandler
824 def_irq_handler CTIMER0_DriverIRQHandler
825 def_irq_handler CTIMER1_DriverIRQHandler
826 def_irq_handler SCT0_DriverIRQHandler
827 def_irq_handler CTIMER3_DriverIRQHandler
828 def_irq_handler FLEXCOMM0_DriverIRQHandler
829 def_irq_handler FLEXCOMM1_DriverIRQHandler
830 def_irq_handler FLEXCOMM2_DriverIRQHandler
831 def_irq_handler FLEXCOMM3_DriverIRQHandler
832 def_irq_handler FLEXCOMM4_DriverIRQHandler
833 def_irq_handler FLEXCOMM5_DriverIRQHandler
834 def_irq_handler FLEXCOMM6_DriverIRQHandler
835 def_irq_handler FLEXCOMM7_DriverIRQHandler
836 def_irq_handler ADC0_DriverIRQHandler
837 def_irq_handler Reserved39_DriverIRQHandler
838 def_irq_handler ACMP_DriverIRQHandler
839 def_irq_handler Reserved41_DriverIRQHandler
840 def_irq_handler Reserved42_DriverIRQHandler
841 def_irq_handler USB0_NEEDCLK_DriverIRQHandler
842 def_irq_handler USB0_DriverIRQHandler
843 def_irq_handler RTC_DriverIRQHandler
844 def_irq_handler Reserved46_DriverIRQHandler
845 def_irq_handler MAILBOX_DriverIRQHandler
846 def_irq_handler PIN_INT4_DriverIRQHandler
847 def_irq_handler PIN_INT5_DriverIRQHandler
848 def_irq_handler PIN_INT6_DriverIRQHandler
849 def_irq_handler PIN_INT7_DriverIRQHandler
850 def_irq_handler CTIMER2_DriverIRQHandler
851 def_irq_handler CTIMER4_DriverIRQHandler
852 def_irq_handler OS_EVENT_DriverIRQHandler
853 def_irq_handler Reserved55_DriverIRQHandler
854 def_irq_handler Reserved56_DriverIRQHandler
855 def_irq_handler Reserved57_DriverIRQHandler
856 def_irq_handler SDIO_DriverIRQHandler
857 def_irq_handler Reserved59_DriverIRQHandler
858 def_irq_handler Reserved60_DriverIRQHandler
859 def_irq_handler Reserved61_DriverIRQHandler
860 def_irq_handler USB1_PHY_DriverIRQHandler
861 def_irq_handler USB1_DriverIRQHandler
862 def_irq_handler USB1_NEEDCLK_DriverIRQHandler
863 def_irq_handler SEC_HYPERVISOR_CALL_DriverIRQHandler
864 def_irq_handler SEC_GPIO_INT0_IRQ0_DriverIRQHandler
865 def_irq_handler SEC_GPIO_INT0_IRQ1_DriverIRQHandler
866 def_irq_handler PLU_DriverIRQHandler
867 def_irq_handler SEC_VIO_DriverIRQHandler
868 def_irq_handler HASHCRYPT_DriverIRQHandler
869 def_irq_handler CASER_DriverIRQHandler
870 def_irq_handler PUF_DriverIRQHandler
871 def_irq_handler PQ_DriverIRQHandler
872 def_irq_handler DMA1_DriverIRQHandler
873 def_irq_handler FLEXCOMM8_DriverIRQHandler
874
875 .end