1/***********************************************************************************
2 *                           SEGGER Microcontroller GmbH                           *
3 *                               The Embedded Experts                              *
4 ***********************************************************************************
5 *                                                                                 *
6 *                   (c) 2014 - 2018 SEGGER Microcontroller GmbH                   *
7 *                                                                                 *
8 *                  www.segger.com     Support: support@segger.com                 *
9 *                                                                                 *
10 ***********************************************************************************
11 *                                                                                 *
12 *        All rights reserved.                                                     *
13 *                                                                                 *
14 *        Redistribution and use in source and binary forms, with or               *
15 *        without modification, are permitted provided that the following          *
16 *        conditions are met:                                                      *
17 *                                                                                 *
18 *        - Redistributions of source code must retain the above copyright         *
19 *          notice, this list of conditions and the following disclaimer.          *
20 *                                                                                 *
21 *        - Neither the name of SEGGER Microcontroller GmbH                        *
22 *          nor the names of its contributors may be used to endorse or            *
23 *          promote products derived from this software without specific           *
24 *          prior written permission.                                              *
25 *                                                                                 *
26 *        THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND                   *
27 *        CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,              *
28 *        INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF                 *
29 *        MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE                 *
30 *        DISCLAIMED.                                                              *
31 *        IN NO EVENT SHALL SEGGER Microcontroller GmbH BE LIABLE FOR              *
32 *        ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR                 *
33 *        CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT        *
34 *        OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;          *
35 *        OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF            *
36 *        LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT                *
37 *        (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE        *
38 *        USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH         *
39 *        DAMAGE.                                                                  *
40 *                                                                                 *
41 ***********************************************************************************/
42
43/************************************************************************************
44 *                         Preprocessor Definitions                                 *
45 *                         ------------------------                                 *
46 * VECTORS_IN_RAM                                                                   *
47 *                                                                                  *
48 *   If defined, an area of RAM will large enough to store the vector table         *
49 *   will be reserved.                                                              *
50 *                                                                                  *
51 ************************************************************************************/
52
53  .syntax unified
54  .code 16
55
56  .section .init, "ax"
57  .align 0
58
59/************************************************************************************
60 * Default Exception Handlers                                                       *
61 ************************************************************************************/
62
63
64  .thumb_func
65  .weak   NMI_Handler
66NMI_Handler:
67  b     .
68
69  .thumb_func
70  .weak   HardFault_Handler
71HardFault_Handler:
72  b     .
73
74  .thumb_func
75  .weak   MemoryManagement_Handler
76MemoryManagement_Handler:
77  b     .
78
79  .thumb_func
80  .weak   BusFault_Handler
81BusFault_Handler:
82  b     .
83
84  .thumb_func
85  .weak   UsageFault_Handler
86UsageFault_Handler:
87  b     .
88
89  .thumb_func
90  .weak   SVC_Handler
91SVC_Handler:
92  b     .
93
94  .thumb_func
95  .weak   DebugMon_Handler
96DebugMon_Handler:
97  b     .
98
99  .thumb_func
100  .weak   PendSV_Handler
101PendSV_Handler:
102  b     .
103
104  .thumb_func
105  .weak   SysTick_Handler
106SysTick_Handler:
107  b     .
108
109  .thumb_func
110  .weak   Dummy_Handler
111Dummy_Handler:
112  b     .
113
114/************************************************************************************
115 * Default Interrupt Handlers                                                       *
116 ************************************************************************************/
117
118.weak POWER_CLOCK_IRQHandler
119.thumb_set POWER_CLOCK_IRQHandler, Dummy_Handler
120
121.weak RADIO_IRQHandler
122.thumb_set RADIO_IRQHandler, Dummy_Handler
123
124.weak UARTE0_UART0_IRQHandler
125.thumb_set UARTE0_UART0_IRQHandler, Dummy_Handler
126
127.weak SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler
128.thumb_set SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler, Dummy_Handler
129
130.weak SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler
131.thumb_set SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler, Dummy_Handler
132
133.weak GPIOTE_IRQHandler
134.thumb_set GPIOTE_IRQHandler, Dummy_Handler
135
136.weak TIMER0_IRQHandler
137.thumb_set TIMER0_IRQHandler, Dummy_Handler
138
139.weak TIMER1_IRQHandler
140.thumb_set TIMER1_IRQHandler, Dummy_Handler
141
142.weak TIMER2_IRQHandler
143.thumb_set TIMER2_IRQHandler, Dummy_Handler
144
145.weak RTC0_IRQHandler
146.thumb_set RTC0_IRQHandler, Dummy_Handler
147
148.weak TEMP_IRQHandler
149.thumb_set TEMP_IRQHandler, Dummy_Handler
150
151.weak RNG_IRQHandler
152.thumb_set RNG_IRQHandler, Dummy_Handler
153
154.weak ECB_IRQHandler
155.thumb_set ECB_IRQHandler, Dummy_Handler
156
157.weak CCM_AAR_IRQHandler
158.thumb_set CCM_AAR_IRQHandler, Dummy_Handler
159
160.weak WDT_IRQHandler
161.thumb_set WDT_IRQHandler, Dummy_Handler
162
163.weak RTC1_IRQHandler
164.thumb_set RTC1_IRQHandler, Dummy_Handler
165
166.weak QDEC_IRQHandler
167.thumb_set QDEC_IRQHandler, Dummy_Handler
168
169.weak COMP_IRQHandler
170.thumb_set COMP_IRQHandler, Dummy_Handler
171
172.weak SWI0_EGU0_IRQHandler
173.thumb_set SWI0_EGU0_IRQHandler, Dummy_Handler
174
175.weak SWI1_EGU1_IRQHandler
176.thumb_set SWI1_EGU1_IRQHandler, Dummy_Handler
177
178.weak SWI2_EGU2_IRQHandler
179.thumb_set SWI2_EGU2_IRQHandler, Dummy_Handler
180
181.weak SWI3_EGU3_IRQHandler
182.thumb_set SWI3_EGU3_IRQHandler, Dummy_Handler
183
184.weak SWI4_EGU4_IRQHandler
185.thumb_set SWI4_EGU4_IRQHandler, Dummy_Handler
186
187.weak SWI5_EGU5_IRQHandler
188.thumb_set SWI5_EGU5_IRQHandler, Dummy_Handler
189
190.weak TIMER3_IRQHandler
191.thumb_set TIMER3_IRQHandler, Dummy_Handler
192
193.weak USBD_IRQHandler
194.thumb_set USBD_IRQHandler, Dummy_Handler
195
196/************************************************************************************
197 * Reset Handler Extensions                                                         *
198 ************************************************************************************/
199
200  .extern Reset_Handler
201  .global nRFInitialize
202  .extern afterInitialize
203
204  .thumb_func
205nRFInitialize:
206  b afterInitialize
207
208
209/************************************************************************************
210 * Vector Table                                                                     *
211 ************************************************************************************/
212
213  .section .vectors, "ax"
214  .align 0
215  .global _vectors
216  .extern __stack_end__
217
218_vectors:
219  .word __stack_end__
220  .word Reset_Handler
221  .word NMI_Handler
222  .word HardFault_Handler
223  .word MemoryManagement_Handler
224  .word BusFault_Handler
225  .word UsageFault_Handler
226  .word 0                           /*Reserved */
227  .word 0                           /*Reserved */
228  .word 0                           /*Reserved */
229  .word 0                           /*Reserved */
230  .word SVC_Handler
231  .word DebugMon_Handler
232  .word 0                           /*Reserved */
233  .word PendSV_Handler
234  .word SysTick_Handler
235
236/* External Interrupts */
237  .word   POWER_CLOCK_IRQHandler
238  .word   RADIO_IRQHandler
239  .word   UARTE0_UART0_IRQHandler
240  .word   SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler
241  .word   SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler
242  .word   0                           /*Reserved */
243  .word   GPIOTE_IRQHandler
244  .word   0                           /*Reserved */
245  .word   TIMER0_IRQHandler
246  .word   TIMER1_IRQHandler
247  .word   TIMER2_IRQHandler
248  .word   RTC0_IRQHandler
249  .word   TEMP_IRQHandler
250  .word   RNG_IRQHandler
251  .word   ECB_IRQHandler
252  .word   CCM_AAR_IRQHandler
253  .word   WDT_IRQHandler
254  .word   RTC1_IRQHandler
255  .word   QDEC_IRQHandler
256  .word   COMP_IRQHandler
257  .word   SWI0_EGU0_IRQHandler
258  .word   SWI1_EGU1_IRQHandler
259  .word   SWI2_EGU2_IRQHandler
260  .word   SWI3_EGU3_IRQHandler
261  .word   SWI4_EGU4_IRQHandler
262  .word   SWI5_EGU5_IRQHandler
263  .word   TIMER3_IRQHandler
264  .word   0                           /*Reserved */
265  .word   0                           /*Reserved */
266  .word   0                           /*Reserved */
267  .word   0                           /*Reserved */
268  .word   0                           /*Reserved */
269  .word   0                           /*Reserved */
270  .word   0                           /*Reserved */
271  .word   0                           /*Reserved */
272  .word   0                           /*Reserved */
273  .word   0                           /*Reserved */
274  .word   0                           /*Reserved */
275  .word   0                           /*Reserved */
276  .word   USBD_IRQHandler
277  .word   0                           /*Reserved */
278  .word   0                           /*Reserved */
279  .word   0                           /*Reserved */
280  .word   0                           /*Reserved */
281  .word   0                           /*Reserved */
282  .word   0                           /*Reserved */
283  .word   0                           /*Reserved */
284  .word   0                           /*Reserved */
285  .word   0                           /*Reserved */
286  .word   0                           /*Reserved */
287  .word   0                           /*Reserved */
288  .word   0                           /*Reserved */
289  .word   0                           /*Reserved */
290  .word   0                           /*Reserved */
291  .word   0                           /*Reserved */
292  .word   0                           /*Reserved */
293  .word   0                           /*Reserved */
294  .word   0                           /*Reserved */
295  .word   0                           /*Reserved */
296  .word   0                           /*Reserved */
297  .word   0                           /*Reserved */
298  .word   0                           /*Reserved */
299  .word   0                           /*Reserved */
300  .word   0                           /*Reserved */
301  .word   0                           /*Reserved */
302  .word   0                           /*Reserved */
303  .word   0                           /*Reserved */
304  .word   0                           /*Reserved */
305  .word   0                           /*Reserved */
306  .word   0                           /*Reserved */
307  .word   0                           /*Reserved */
308  .word   0                           /*Reserved */
309  .word   0                           /*Reserved */
310  .word   0                           /*Reserved */
311  .word   0                           /*Reserved */
312  .word   0                           /*Reserved */
313  .word   0                           /*Reserved */
314  .word   0                           /*Reserved */
315  .word   0                           /*Reserved */
316  .word   0                           /*Reserved */
317  .word   0                           /*Reserved */
318  .word   0                           /*Reserved */
319  .word   0                           /*Reserved */
320  .word   0                           /*Reserved */
321  .word   0                           /*Reserved */
322  .word   0                           /*Reserved */
323  .word   0                           /*Reserved */
324  .word   0                           /*Reserved */
325  .word   0                           /*Reserved */
326  .word   0                           /*Reserved */
327  .word   0                           /*Reserved */
328  .word   0                           /*Reserved */
329  .word   0                           /*Reserved */
330  .word   0                           /*Reserved */
331  .word   0                           /*Reserved */
332  .word   0                           /*Reserved */
333  .word   0                           /*Reserved */
334  .word   0                           /*Reserved */
335  .word   0                           /*Reserved */
336  .word   0                           /*Reserved */
337  .word   0                           /*Reserved */
338  .word   0                           /*Reserved */
339  .word   0                           /*Reserved */
340  .word   0                           /*Reserved */
341  .word   0                           /*Reserved */
342  .word   0                           /*Reserved */
343  .word   0                           /*Reserved */
344  .word   0                           /*Reserved */
345  .word   0                           /*Reserved */
346  .word   0                           /*Reserved */
347  .word   0                           /*Reserved */
348  .word   0                           /*Reserved */
349_vectors_end:
350
351#ifdef VECTORS_IN_RAM
352  .section .vectors_ram, "ax"
353  .align 0
354  .global _vectors_ram
355
356_vectors_ram:
357  .space _vectors_end - _vectors, 0
358#endif
359