WXK
2025-01-21 8f1a91a8ec98e430cfe4357bda099d495917198e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *  http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
 
#include "nrf.h"
 
/**************************************************************************************************
  Macros
**************************************************************************************************/
 
/*! Weak symbol reference. */
#define WEAK        __attribute__ ((weak))
 
/**************************************************************************************************
  Functions
**************************************************************************************************/
 
extern void SystemInit(void);
static void SystemDefaultHandler(void);
 
/* Core vectors. */
void WEAK Reset_Handler(void);
void WEAK NMI_Handler(void);
void WEAK HardFault_Handler(void);
void WEAK MemoryManagement_Handler(void);
void WEAK BusFault_Handler(void);
void WEAK UsageFault_Handler(void);
void WEAK SVC_Handler(void);
void WEAK DebugMon_Handler(void);
void WEAK PendSV_Handler(void);
void WEAK SysTick_Handler(void);
void WEAK POWER_CLOCK_IRQHandler(void);
void WEAK RADIO_IRQHandler(void);
void WEAK UARTE0_UART0_IRQHandler(void);
void WEAK SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler(void);
void WEAK SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler(void);
void WEAK NFCT_IRQHandler(void);
void WEAK GPIOTE_IRQHandler(void);
void WEAK SAADC_IRQHandler(void);
void WEAK TIMER0_IRQHandler(void);
void WEAK TIMER1_IRQHandler(void);
void WEAK TIMER2_IRQHandler(void);
void WEAK RTC0_IRQHandler(void);
void WEAK TEMP_IRQHandler(void);
void WEAK RNG_IRQHandler(void);
void WEAK ECB_IRQHandler(void);
void WEAK CCM_AAR_IRQHandler(void);
void WEAK WDT_IRQHandler(void);
void WEAK RTC1_IRQHandler(void);
void WEAK QDEC_IRQHandler(void);
void WEAK COMP_LPCOMP_IRQHandler(void);
void WEAK SWI0_EGU0_IRQHandler(void);
void WEAK SWI1_EGU1_IRQHandler(void);
void WEAK SWI2_EGU2_IRQHandler(void);
void WEAK SWI3_EGU3_IRQHandler(void);
void WEAK SWI4_EGU4_IRQHandler(void);
void WEAK SWI5_EGU5_IRQHandler(void);
void WEAK TIMER3_IRQHandler(void);
void WEAK TIMER4_IRQHandler(void);
void WEAK PWM0_IRQHandler(void);
void WEAK PDM_IRQHandler(void);
void WEAK MWU_IRQHandler(void);
void WEAK PWM1_IRQHandler(void);
void WEAK PWM2_IRQHandler(void);
void WEAK SPIM2_SPIS2_SPI2_IRQHandler(void);
void WEAK RTC2_IRQHandler(void);
void WEAK I2S_IRQHandler(void);
void WEAK FPU_IRQHandler(void);
 
/* Assign default weak references. Override these values by defining a new function with the same name. */
#pragma weak NMI_Handler                                    = SystemDefaultHandler
#pragma weak HardFault_Handler                              = SystemDefaultHandler
#pragma weak MemoryManagement_Handler                       = SystemDefaultHandler
#pragma weak BusFault_Handler                               = SystemDefaultHandler
#pragma weak UsageFault_Handler                             = SystemDefaultHandler
#pragma weak SVC_Handler                                    = SystemDefaultHandler
#pragma weak DebugMon_Handler                               = SystemDefaultHandler
#pragma weak PendSV_Handler                                 = SystemDefaultHandler
#pragma weak SysTick_Handler                                = SystemDefaultHandler
#pragma weak POWER_CLOCK_IRQHandler                         = SystemDefaultHandler
#pragma weak RADIO_IRQHandler                               = SystemDefaultHandler
#pragma weak UARTE0_UART0_IRQHandler                        = SystemDefaultHandler
#pragma weak SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler   = SystemDefaultHandler
#pragma weak SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler   = SystemDefaultHandler
#pragma weak NFCT_IRQHandler                                = SystemDefaultHandler
#pragma weak GPIOTE_IRQHandler                              = SystemDefaultHandler
#pragma weak SAADC_IRQHandler                               = SystemDefaultHandler
#pragma weak TIMER0_IRQHandler                              = SystemDefaultHandler
#pragma weak TIMER1_IRQHandler                              = SystemDefaultHandler
#pragma weak TIMER2_IRQHandler                              = SystemDefaultHandler
#pragma weak RTC0_IRQHandler                                = SystemDefaultHandler
#pragma weak TEMP_IRQHandler                                = SystemDefaultHandler
#pragma weak RNG_IRQHandler                                 = SystemDefaultHandler
#pragma weak ECB_IRQHandler                                 = SystemDefaultHandler
#pragma weak CCM_AAR_IRQHandler                             = SystemDefaultHandler
#pragma weak WDT_IRQHandler                                 = SystemDefaultHandler
#pragma weak RTC1_IRQHandler                                = SystemDefaultHandler
#pragma weak QDEC_IRQHandler                                = SystemDefaultHandler
#pragma weak COMP_LPCOMP_IRQHandler                         = SystemDefaultHandler
#pragma weak SWI0_EGU0_IRQHandler                           = SystemDefaultHandler
#pragma weak SWI1_EGU1_IRQHandler                           = SystemDefaultHandler
#pragma weak SWI2_EGU2_IRQHandler                           = SystemDefaultHandler
#pragma weak SWI3_EGU3_IRQHandler                           = SystemDefaultHandler
#pragma weak SWI4_EGU4_IRQHandler                           = SystemDefaultHandler
#pragma weak SWI5_EGU5_IRQHandler                           = SystemDefaultHandler
#pragma weak TIMER3_IRQHandler                              = SystemDefaultHandler
#pragma weak TIMER4_IRQHandler                              = SystemDefaultHandler
#pragma weak PWM0_IRQHandler                                = SystemDefaultHandler
#pragma weak PDM_IRQHandler                                 = SystemDefaultHandler
#pragma weak MWU_IRQHandler                                 = SystemDefaultHandler
#pragma weak PWM1_IRQHandler                                = SystemDefaultHandler
#pragma weak PWM2_IRQHandler                                = SystemDefaultHandler
#pragma weak SPIM2_SPIS2_SPI2_IRQHandler                    = SystemDefaultHandler
#pragma weak RTC2_IRQHandler                                = SystemDefaultHandler
#pragma weak I2S_IRQHandler                                 = SystemDefaultHandler
#pragma weak FPU_IRQHandler                                 = SystemDefaultHandler
 
/**************************************************************************************************
  Global variables
**************************************************************************************************/
 
/*! Core vector table */
void (* systemVectors[256])(void) =
{
  0,                                            /*  0: The initial stack pointer */
  Reset_Handler,                                /*  1: The reset handler */
  NMI_Handler,                                  /*  2: The NMI handler */
  HardFault_Handler,                            /*  3: The hard fault handler */
  MemoryManagement_Handler,                     /*  4: The MPU fault handler */
  BusFault_Handler,                             /*  5: The bus fault handler */
  UsageFault_Handler,                           /*  6: The usage fault handler */
  0,                                            /*  7: Reserved */
  0,                                            /*  8: Reserved */
  0,                                            /*  9: Reserved */
  0,                                            /* 10: Reserved */
  SVC_Handler,                                  /* 11: SVCall handler */
  DebugMon_Handler,                             /* 12: Debug monitor handler */
  0,                                            /* 13: Reserved */
  PendSV_Handler,                               /* 14: The PendSV handler */
  SysTick_Handler,                              /* 15: The SysTick handler */
 
  /* External interrupts */
  POWER_CLOCK_IRQHandler,                       /* 16: POWER_CLOCK */
  RADIO_IRQHandler,                             /* 17: RADIO */
  UARTE0_UART0_IRQHandler,                      /* 18: UART0 */
  SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0_IRQHandler, /* 19: SPIM0_SPIS0_TWIM0_TWIS0_SPI0_TWI0 */
  SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1_IRQHandler, /* 20: SPIM1_SPIS1_TWIM1_TWIS1_SPI1_TWI1 */
  NFCT_IRQHandler,                              /* 21: NFCT */
  GPIOTE_IRQHandler,                            /* 22: GPIOTE */
  SAADC_IRQHandler,                             /* 23: SAADC */
  TIMER0_IRQHandler,                            /* 24: TIMER0 */
  TIMER1_IRQHandler,                            /* 25: TIMER1 */
  TIMER2_IRQHandler,                            /* 26: TIMER2 */
  RTC0_IRQHandler,                              /* 27: RTC0 */
  TEMP_IRQHandler,                              /* 28: TEMP */
  RNG_IRQHandler,                               /* 29: RNG */
  ECB_IRQHandler,                               /* 30: ECB */
  CCM_AAR_IRQHandler,                           /* 31: CCM_AAR */
  WDT_IRQHandler,                               /* 32: WDT */
  RTC1_IRQHandler,                              /* 33: RTC1 */
  QDEC_IRQHandler,                              /* 34: QDEC */
  COMP_LPCOMP_IRQHandler,                       /* 35: COMP_LPCOMP */
  SWI0_EGU0_IRQHandler,                         /* 36: SWI0_EGU0 */
  SWI1_EGU1_IRQHandler,                         /* 37: SWI1_EGU1 */
  SWI2_EGU2_IRQHandler,                         /* 38: SWI2_EGU2 */
  SWI3_EGU3_IRQHandler,                         /* 39: SWI3_EGU3 */
  SWI4_EGU4_IRQHandler,                         /* 40: SWI4_EGU4 */
  SWI5_EGU5_IRQHandler,                         /* 41: SWI5_EGU5 */
  TIMER3_IRQHandler,                            /* 42: TIMER3 */
  TIMER4_IRQHandler,                            /* 43: TIMER4 */
  PWM0_IRQHandler,                              /* 44: PWM0 */
  PDM_IRQHandler,                               /* 45: PDM */
  0,                                            /* 46: Reserved */
  0,                                            /* 47: Reserved */
  MWU_IRQHandler,                               /* 48: MWU */
  PWM1_IRQHandler,                              /* 49: PWM1 */
  PWM2_IRQHandler,                              /* 50: PWM2 */
  SPIM2_SPIS2_SPI2_IRQHandler,                  /* 51: SPIM2_SPIS2_SPI2 */
  RTC2_IRQHandler,                              /* 52: RTC2 */
  I2S_IRQHandler,                               /* 53: I2S */
  FPU_IRQHandler,                               /* 54: FPU */
  0,                                            /* 55: Reserved */
  0,                                            /* 56: Reserved */
  0,                                            /* 57: Reserved */
  0,                                            /* 58: Reserved */
  0,                                            /* 59: Reserved */
  0,                                            /* 60: Reserved */
  0,                                            /* 61: Reserved */
  0,                                            /* 62: Reserved */
  0                                             /* 63: Reserved */
                                                /* 64..127: Reserved */
};
 
/*************************************************************************************************/
/*!
 *  \brief      Reset handler.
 */
/*************************************************************************************************/
void Reset_Handler(void)
{
  /* Core initialization. */
  SystemInit();
}
 
/*************************************************************************************************/
/*!
 *  \brief      Default vector handler.
 *
 *  \param      None.
 */
/*************************************************************************************************/
static void SystemDefaultHandler(void)
{
  volatile unsigned int forever = 1;
  while (forever);
}