1 //*****************************************************************************
2 //
3 // Copyright (C) 2018 Texas Instruments Incorporated - http://www.ti.com/
4 //
5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions
7 // are met:
8 //
9 //  Redistributions of source code must retain the above copyright
10 //  notice, this list of conditions and the following disclaimer.
11 //
12 //  Redistributions in binary form must reproduce the above copyright
13 //  notice, this list of conditions and the following disclaimer in the
14 //  documentation and/or other materials provided with the
15 //  distribution.
16 //
17 //  Neither the name of Texas Instruments Incorporated nor the names of
18 //  its contributors may be used to endorse or promote products derived
19 //  from this software without specific prior written permission.
20 //
21 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 //
33 // MSP432 Startup Code and interrupt vectors for IAR Embedded Workbench for ARM
34 //
35 //*****************************************************************************
36 
37 #include <stdint.h>
38 
39 //*****************************************************************************
40 //
41 // Enable the IAR extensions for this source file.
42 //
43 //*****************************************************************************
44 #pragma language=extended
45 #pragma segment="CSTACK"
46 
47 //*****************************************************************************
48 //
49 // Forward declaration of the default fault handlers.
50 //
51 //*****************************************************************************
52 extern void Reset_Handler(void);
53 static void Default_Handler(void);
54 
55 extern void NMI_Handler(void);
56 extern void HardFault_Handler(void);
57 extern void MemManage_Handler(void);
58 extern void BusFault_Handler(void);
59 extern void UsageFault_Handler(void);
60 extern void SVC_Handler(void);
61 extern void DebugMon_Handler(void);
62 extern void PendSV_Handler(void);
63 extern void SysTick_Handler(void);
64 
65 /* device specific interrupt handler */
66 extern void GPIOA_IRQHandler(void);
67 extern void GPIOB_IRQHandler(void);
68 extern void GPIOC_IRQHandler(void);
69 extern void GPIOD_IRQHandler(void);
70 extern void GPIOE_IRQHandler(void);
71 extern void UART0_IRQHandler(void);
72 extern void UART1_IRQHandler(void);
73 extern void SSI0_IRQHandler(void);
74 extern void I2C0_IRQHandler(void);
75 extern void PWM0_FAULT_IRQHandler(void);
76 extern void PWM0_0_IRQHandler(void);
77 extern void PWM0_1_IRQHandler(void);
78 extern void PWM0_2_IRQHandler(void);
79 extern void QEI0_IRQHandler(void);
80 extern void ADC0SS0_IRQHandler(void);
81 extern void ADC0SS1_IRQHandler(void);
82 extern void ADC0SS2_IRQHandler(void);
83 extern void ADC0SS3_IRQHandler(void);
84 extern void WATCHDOG_IRQHandler(void);
85 extern void TIMER0A_IRQHandler(void);
86 extern void TIMER0B_IRQHandler(void);
87 extern void TIMER1A_IRQHandler(void);
88 extern void TIMER1B_IRQHandler(void);
89 extern void TIMER2A_IRQHandler(void);
90 extern void TIMER2B_IRQHandler(void);
91 extern void COMP0_IRQHandler(void);
92 extern void COMP1_IRQHandler(void);
93 extern void COMP2_IRQHandler(void);
94 extern void SYSCTL_IRQHandler(void);
95 extern void FLASH_IRQHandler(void);
96 extern void GPIOF_IRQHandler(void);
97 extern void GPIOG_IRQHandler(void);
98 extern void GPIOH_IRQHandler(void);
99 extern void UART2_IRQHandler(void);
100 extern void SSI1_IRQHandler(void);
101 extern void TIMER3A_IRQHandler(void);
102 extern void TIMER3B_IRQHandler(void);
103 extern void I2C1_IRQHandler(void);
104 extern void CAN0_IRQHandler(void);
105 extern void CAN1_IRQHandler(void);
106 extern void EMAC0_IRQHandler(void);
107 extern void HIBERNATE_IRQHandler(void);
108 extern void USB0_IRQHandler(void);
109 extern void PWM0_3_IRQHandler(void);
110 extern void UDMA_IRQHandler(void);
111 extern void UDMAERR_IRQHandler(void);
112 extern void ADC1SS0_IRQHandler(void);
113 extern void ADC1SS1_IRQHandler(void);
114 extern void ADC1SS2_IRQHandler(void);
115 extern void ADC1SS3_IRQHandler(void);
116 extern void EPI0_IRQHandler(void);
117 extern void GPIOJ_IRQHandler(void);
118 extern void GPIOK_IRQHandler(void);
119 extern void GPIOL_IRQHandler(void);
120 extern void SSI2_IRQHandler(void);
121 extern void SSI3_IRQHandler(void);
122 extern void UART3_IRQHandler(void);
123 extern void UART4_IRQHandler(void);
124 extern void UART5_IRQHandler(void);
125 extern void UART6_IRQHandler(void);
126 extern void UART7_IRQHandler(void);
127 extern void I2C2_IRQHandler(void);
128 extern void I2C3_IRQHandler(void);
129 extern void TIMER4A_IRQHandler(void);
130 extern void TIMER4B_IRQHandler(void);
131 extern void TIMER5A_IRQHandler(void);
132 extern void TIMER5B_IRQHandler(void);
133 extern void SYSEXC_IRQHandler(void);
134 extern void I2C4_IRQHandler(void);
135 extern void I2C5_IRQHandler(void);
136 extern void GPIOM_IRQHandler(void);
137 extern void GPION_IRQHandler(void);
138 extern void TAMPER0_IRQHandler(void);
139 extern void GPIOP0_IRQHandler(void);
140 extern void GPIOP1_IRQHandler(void);
141 extern void GPIOP2_IRQHandler(void);
142 extern void GPIOP3_IRQHandler(void);
143 extern void GPIOP4_IRQHandler(void);
144 extern void GPIOP5_IRQHandler(void);
145 extern void GPIOP6_IRQHandler(void);
146 extern void GPIOP7_IRQHandler(void);
147 extern void GPIOQ0_IRQHandler(void);
148 extern void GPIOQ1_IRQHandler(void);
149 extern void GPIOQ2_IRQHandler(void);
150 extern void GPIOQ3_IRQHandler(void);
151 extern void GPIOQ4_IRQHandler(void);
152 extern void GPIOQ5_IRQHandler(void);
153 extern void GPIOQ6_IRQHandler(void);
154 extern void GPIOQ7_IRQHandler(void);
155 extern void SHA0_IRQHandler(void);
156 extern void AES0_IRQHandler(void);
157 extern void DES0_IRQHandler(void);
158 extern void TIMER6A_IRQHandler(void);
159 extern void TIMER6B_IRQHandler(void);
160 extern void TIMER7A_IRQHandler(void);
161 extern void TIMER7B_IRQHandler(void);
162 extern void I2C6_IRQHandler(void);
163 extern void I2C7_IRQHandler(void);
164 extern void I2C8_IRQHandler(void);
165 extern void I2C9_IRQHandler(void);
166 
167 /* Cortex-M4 Processor Exceptions */
168 #pragma weak NMI_Handler=Default_Handler
169 #pragma weak HardFault_Handler=Default_Handler
170 #pragma weak MemManage_Handler=Default_Handler
171 #pragma weak BusFault_Handler=Default_Handler
172 #pragma weak UsageFault_Handler=Default_Handler
173 #pragma weak SVC_Handler=Default_Handler
174 #pragma weak DebugMon_Handler=Default_Handler
175 #pragma weak PendSV_Handler=Default_Handler
176 #pragma weak SysTick_Handler=Default_Handler
177 
178 /* device specific interrupt handler */
179 #pragma weak GPIOA_IRQHandler=Default_Handler
180 #pragma weak GPIOB_IRQHandler=Default_Handler
181 #pragma weak GPIOC_IRQHandler=Default_Handler
182 #pragma weak GPIOD_IRQHandler=Default_Handler
183 #pragma weak GPIOE_IRQHandler=Default_Handler
184 #pragma weak UART0_IRQHandler=Default_Handler
185 #pragma weak UART1_IRQHandler=Default_Handler
186 #pragma weak SSI0_IRQHandler=Default_Handler
187 #pragma weak I2C0_IRQHandler=Default_Handler
188 #pragma weak PWM0_FAULT_IRQHandler=Default_Handler
189 #pragma weak PWM0_0_IRQHandler=Default_Handler
190 #pragma weak PWM0_1_IRQHandler=Default_Handler
191 #pragma weak PWM0_2_IRQHandler=Default_Handler
192 #pragma weak QEI0_IRQHandler=Default_Handler
193 #pragma weak ADC0SS0_IRQHandler=Default_Handler
194 #pragma weak ADC0SS1_IRQHandler=Default_Handler
195 #pragma weak ADC0SS2_IRQHandler=Default_Handler
196 #pragma weak ADC0SS3_IRQHandler=Default_Handler
197 #pragma weak WATCHDOG_IRQHandler=Default_Handler
198 #pragma weak TIMER0A_IRQHandler=Default_Handler
199 #pragma weak TIMER0B_IRQHandler=Default_Handler
200 #pragma weak TIMER1A_IRQHandler=Default_Handler
201 #pragma weak TIMER1B_IRQHandler=Default_Handler
202 #pragma weak TIMER2A_IRQHandler=Default_Handler
203 #pragma weak TIMER2B_IRQHandler=Default_Handler
204 #pragma weak COMP0_IRQHandler=Default_Handler
205 #pragma weak COMP1_IRQHandler=Default_Handler
206 #pragma weak COMP2_IRQHandler=Default_Handler
207 #pragma weak SYSCTL_IRQHandler=Default_Handler
208 #pragma weak FLASH_IRQHandler=Default_Handler
209 #pragma weak GPIOF_IRQHandler=Default_Handler
210 #pragma weak GPIOG_IRQHandler=Default_Handler
211 #pragma weak GPIOH_IRQHandler=Default_Handler
212 #pragma weak UART2_IRQHandler=Default_Handler
213 #pragma weak SSI1_IRQHandler=Default_Handler
214 #pragma weak TIMER3A_IRQHandler=Default_Handler
215 #pragma weak TIMER3B_IRQHandler=Default_Handler
216 #pragma weak I2C1_IRQHandler=Default_Handler
217 #pragma weak CAN0_IRQHandler=Default_Handler
218 #pragma weak CAN1_IRQHandler=Default_Handler
219 #pragma weak EMAC0_IRQHandler=Default_Handler
220 #pragma weak HIBERNATE_IRQHandler=Default_Handler
221 #pragma weak USB0_IRQHandler=Default_Handler
222 #pragma weak PWM0_3_IRQHandler=Default_Handler
223 #pragma weak UDMA_IRQHandler=Default_Handler
224 #pragma weak UDMAERR_IRQHandler=Default_Handler
225 #pragma weak ADC1SS0_IRQHandler=Default_Handler
226 #pragma weak ADC1SS1_IRQHandler=Default_Handler
227 #pragma weak ADC1SS2_IRQHandler=Default_Handler
228 #pragma weak ADC1SS3_IRQHandler=Default_Handler
229 #pragma weak EPI0_IRQHandler=Default_Handler
230 #pragma weak GPIOJ_IRQHandler=Default_Handler
231 #pragma weak GPIOK_IRQHandler=Default_Handler
232 #pragma weak GPIOL_IRQHandler=Default_Handler
233 #pragma weak SSI2_IRQHandler=Default_Handler
234 #pragma weak SSI3_IRQHandler=Default_Handler
235 #pragma weak UART3_IRQHandler=Default_Handler
236 #pragma weak UART4_IRQHandler=Default_Handler
237 #pragma weak UART5_IRQHandler=Default_Handler
238 #pragma weak UART6_IRQHandler=Default_Handler
239 #pragma weak UART7_IRQHandler=Default_Handler
240 #pragma weak I2C2_IRQHandler=Default_Handler
241 #pragma weak I2C3_IRQHandler=Default_Handler
242 #pragma weak TIMER4A_IRQHandler=Default_Handler
243 #pragma weak TIMER4B_IRQHandler=Default_Handler
244 #pragma weak TIMER5A_IRQHandler=Default_Handler
245 #pragma weak TIMER5B_IRQHandler=Default_Handler
246 #pragma weak SYSEXC_IRQHandler=Default_Handler
247 #pragma weak I2C4_IRQHandler=Default_Handler
248 #pragma weak I2C5_IRQHandler=Default_Handler
249 #pragma weak GPIOM_IRQHandler=Default_Handler
250 #pragma weak GPION_IRQHandler=Default_Handler
251 #pragma weak TAMPER0_IRQHandler=Default_Handler
252 #pragma weak GPIOP0_IRQHandler=Default_Handler
253 #pragma weak GPIOP1_IRQHandler=Default_Handler
254 #pragma weak GPIOP2_IRQHandler=Default_Handler
255 #pragma weak GPIOP3_IRQHandler=Default_Handler
256 #pragma weak GPIOP4_IRQHandler=Default_Handler
257 #pragma weak GPIOP5_IRQHandler=Default_Handler
258 #pragma weak GPIOP6_IRQHandler=Default_Handler
259 #pragma weak GPIOP7_IRQHandler=Default_Handler
260 #pragma weak GPIOQ0_IRQHandler=Default_Handler
261 #pragma weak GPIOQ1_IRQHandler=Default_Handler
262 #pragma weak GPIOQ2_IRQHandler=Default_Handler
263 #pragma weak GPIOQ3_IRQHandler=Default_Handler
264 #pragma weak GPIOQ4_IRQHandler=Default_Handler
265 #pragma weak GPIOQ5_IRQHandler=Default_Handler
266 #pragma weak GPIOQ6_IRQHandler=Default_Handler
267 #pragma weak GPIOQ7_IRQHandler=Default_Handler
268 #pragma weak SHA0_IRQHandler=Default_Handler
269 #pragma weak AES0_IRQHandler=Default_Handler
270 #pragma weak DES0_IRQHandler=Default_Handler
271 #pragma weak TIMER6A_IRQHandler=Default_Handler
272 #pragma weak TIMER6B_IRQHandler=Default_Handler
273 #pragma weak TIMER7A_IRQHandler=Default_Handler
274 #pragma weak TIMER7B_IRQHandler=Default_Handler
275 #pragma weak I2C6_IRQHandler=Default_Handler
276 #pragma weak I2C7_IRQHandler=Default_Handler
277 #pragma weak I2C8_IRQHandler=Default_Handler
278 #pragma weak I2C9_IRQHandler=Default_Handler
279 
280 //*****************************************************************************
281 //
282 // The reference for the device initialization.
283 //
284 //*****************************************************************************
285 extern void SystemInit(void);
286 
287 //*****************************************************************************
288 //
289 // The entry point for the application startup code.
290 //
291 //*****************************************************************************
292 extern int __low_level_init(void);
293 
294 //*****************************************************************************
295 //
296 // A union that describes the entries of the vector table.  The union is needed
297 // since the first entry is the stack pointer and the remainder are function
298 // pointers.
299 //
300 //*****************************************************************************
301 typedef union
302 {
303     void (*handler)(void);
304     uint32_t ptr;
305 }
306 uVectorEntry;
307 
308 //*****************************************************************************
309 //
310 // The vector table.  Note that the proper constructs must be placed on this to
311 // ensure that it ends up at physical address 0x0000.0000.
312 //
313 //*****************************************************************************
314 __root const uVectorEntry __vector_table[] @ ".intvec" =
315 {
316     { .ptr = (uint32_t)__sfe("CSTACK") },   /* The initial stack pointer */
317     Reset_Handler,                          /* The reset handler         */
318     NMI_Handler,                            /* The NMI handler           */
319     HardFault_Handler,                      /* The hard fault handler    */
320     MemManage_Handler,                      /* The MPU fault handler     */
321     BusFault_Handler,                       /* The bus fault handler     */
322     UsageFault_Handler,                     /* The usage fault handler   */
323     0,                                      /* Reserved                  */
324     0,                                      /* Reserved                  */
325     0,                                      /* Reserved                  */
326     0,                                      /* Reserved                  */
327     SVC_Handler,                            /* SVCall handler            */
328     DebugMon_Handler,                       /* Debug monitor handler     */
329     0,                                      /* Reserved                  */
330     PendSV_Handler,                         /* The PendSV handler        */
331     SysTick_Handler,                        /* The SysTick handler       */
332     GPIOA_IRQHandler,                       /* GPIO Port A               */
333     GPIOB_IRQHandler,                       /* GPIO Port B               */
334     GPIOC_IRQHandler,                       /* GPIO Port C               */
335     GPIOD_IRQHandler,                       /* GPIO Port D               */
336     GPIOE_IRQHandler,                       /* GPIO Port E               */
337     UART0_IRQHandler,                       /* UART0 Rx and Tx           */
338     UART1_IRQHandler,                       /* UART1 Rx and Tx           */
339     SSI0_IRQHandler,                        /* SSI0 Rx and Tx            */
340     I2C0_IRQHandler,                        /* I2C0 Master and Slave     */
341     PWM0_FAULT_IRQHandler,                  /* PWM Fault                 */
342     PWM0_0_IRQHandler,                      /* PWM Generator 0           */
343     PWM0_1_IRQHandler,                      /* PWM Generator 1           */
344     PWM0_2_IRQHandler,                      /* PWM Generator 2           */
345     QEI0_IRQHandler,                        /* Quadrature Encoder 0      */
346     ADC0SS0_IRQHandler,                     /* ADC Sequence 0            */
347     ADC0SS1_IRQHandler,                     /* ADC Sequence 1            */
348     ADC0SS2_IRQHandler,                     /* ADC Sequence 2            */
349     ADC0SS3_IRQHandler,                     /* ADC Sequence 3            */
350     WATCHDOG_IRQHandler,                    /* Watchdog timer            */
351     TIMER0A_IRQHandler,                     /* Timer 0 subtimer A        */
352     TIMER0B_IRQHandler,                     /* Timer 0 subtimer B        */
353     TIMER1A_IRQHandler,                     /* Timer 1 subtimer A        */
354     TIMER1B_IRQHandler,                     /* Timer 1 subtimer B        */
355     TIMER2A_IRQHandler,                     /* Timer 2 subtimer A        */
356     TIMER2B_IRQHandler,                     /* Timer 2 subtimer B        */
357     COMP0_IRQHandler,                       /* Analog Comparator 0       */
358     COMP1_IRQHandler,                       /* Analog Comparator 1       */
359     COMP2_IRQHandler,                       /* Analog Comparator 2       */
360     SYSCTL_IRQHandler,                      /* System Control            */
361     FLASH_IRQHandler,                       /* FLASH Control             */
362     GPIOF_IRQHandler,                       /* GPIO Port F               */
363     GPIOG_IRQHandler,                       /* GPIO Port G               */
364     GPIOH_IRQHandler,                       /* GPIO Port H               */
365     UART2_IRQHandler,                       /* UART2 Rx and Tx           */
366     SSI1_IRQHandler,                        /* SSI1 Rx and Tx            */
367     TIMER3A_IRQHandler,                     /* Timer 3 subtimer A        */
368     TIMER3B_IRQHandler,                     /* Timer 3 subtimer B        */
369     I2C1_IRQHandler,                        /* I2C1 Master and Slave     */
370     CAN0_IRQHandler,                        /* CAN0                      */
371     CAN1_IRQHandler,                        /* CAN1                      */
372     EMAC0_IRQHandler,                       /* Ethernet                  */
373     HIBERNATE_IRQHandler,                   /* Hibernate                 */
374     USB0_IRQHandler,                        /* USB0                      */
375     PWM0_3_IRQHandler,                      /* PWM Generator 3           */
376     UDMA_IRQHandler,                        /* uDMA Software Transfer    */
377     UDMAERR_IRQHandler,                     /* uDMA Error                */
378     ADC1SS0_IRQHandler,                     /* ADC1 Sequence 0           */
379     ADC1SS1_IRQHandler,                     /* ADC1 Sequence 1           */
380     ADC1SS2_IRQHandler,                     /* ADC1 Sequence 2           */
381     ADC1SS3_IRQHandler,                     /* ADC1 Sequence 3           */
382     EPI0_IRQHandler,                        /* External Bus Interface 0  */
383     GPIOJ_IRQHandler,                       /* GPIO Port J               */
384     GPIOK_IRQHandler,                       /* GPIO Port K               */
385     GPIOL_IRQHandler,                       /* GPIO Port L               */
386     SSI2_IRQHandler,                        /* SSI2 Rx and Tx            */
387     SSI3_IRQHandler,                        /* SSI3 Rx and Tx            */
388     UART3_IRQHandler,                       /* UART3 Rx and Tx           */
389     UART4_IRQHandler,                       /* UART4 Rx and Tx           */
390     UART5_IRQHandler,                       /* UART5 Rx and Tx           */
391     UART6_IRQHandler,                       /* UART6 Rx and Tx           */
392     UART7_IRQHandler,                       /* UART7 Rx and Tx           */
393     I2C2_IRQHandler,                        /* I2C2 Master and Slave     */
394     I2C3_IRQHandler,                        /* I2C3 Master and Slave     */
395     TIMER4A_IRQHandler,                     /* Timer 4 subtimer A        */
396     TIMER4B_IRQHandler,                     /* Timer 4 subtimer B        */
397     TIMER5A_IRQHandler,                     /* Timer 5 subtimer A        */
398     TIMER5B_IRQHandler,                     /* Timer 5 subtimer B        */
399     SYSEXC_IRQHandler,                      /* FPU                       */
400     0,                                      /* Reserved                  */
401     0,                                      /* Reserved                  */
402     I2C4_IRQHandler,                        /* I2C4 Master and Slave     */
403     I2C5_IRQHandler,                        /* I2C5 Master and Slave     */
404     GPIOM_IRQHandler,                       /* GPIO Port M               */
405     GPION_IRQHandler,                       /* GPIO Port N               */
406     0,                                      /* Reserved                  */
407     TAMPER0_IRQHandler,                     /* Tamper                    */
408     GPIOP0_IRQHandler,                      /* GPIO Port P(Summary or P0)*/
409     GPIOP1_IRQHandler,                      /* GPIO Port P1              */
410     GPIOP2_IRQHandler,                      /* GPIO Port P2              */
411     GPIOP3_IRQHandler,                      /* GPIO Port P3              */
412     GPIOP4_IRQHandler,                      /* GPIO Port P4              */
413     GPIOP5_IRQHandler,                      /* GPIO Port P5              */
414     GPIOP6_IRQHandler,                      /* GPIO Port P6              */
415     GPIOP7_IRQHandler,                      /* GPIO Port P7              */
416     GPIOQ0_IRQHandler,                      /* GPIO Port Q(Summary or Q0)*/
417     GPIOQ1_IRQHandler,                      /* GPIO Port Q1              */
418     GPIOQ2_IRQHandler,                      /* GPIO Port Q2              */
419     GPIOQ3_IRQHandler,                      /* GPIO Port Q3              */
420     GPIOQ4_IRQHandler,                      /* GPIO Port Q4              */
421     GPIOQ5_IRQHandler,                      /* GPIO Port Q5              */
422     GPIOQ6_IRQHandler,                      /* GPIO Port Q6              */
423     GPIOQ7_IRQHandler,                      /* GPIO Port Q7              */
424     0,                                      /* Reserved                  */
425     0,                                      /* Reserved                  */
426     SHA0_IRQHandler,                        /* SHA/MD5 0                 */
427     AES0_IRQHandler,                        /* AES 0                     */
428     DES0_IRQHandler,                        /* DES3DES 0                 */
429     0,                                      /* Reserved                  */
430     TIMER6A_IRQHandler,                     /* Timer 6 subtimer A        */
431     TIMER6B_IRQHandler,                     /* Timer 6 subtimer B        */
432     TIMER7A_IRQHandler,                     /* Timer 7 subtimer A        */
433     TIMER7B_IRQHandler,                     /* Timer 7 subtimer B        */
434     I2C6_IRQHandler,                        /* I2C6 Master and Slave     */
435     I2C7_IRQHandler,                        /* I2C7 Master and Slave     */
436     0,                                      /* Reserved                  */
437     0,                                      /* Reserved                  */
438     0,                                      /* HIM PS/2 0                */
439     0,                                      /* Reserved                  */
440     0,                                      /* Reserved                  */
441     I2C8_IRQHandler,                        /* I2C8 Master and Slave     */
442     I2C9_IRQHandler,                        /* I2C9 Master and Slave     */
443     0,                                      /* Reserved                  */
444     0,                                      /* Reserved                  */
445     0                                       /* Reserved                  */
446 };
447 
448 //*****************************************************************************
449 //
450 // This is the code that gets called when the processor first starts execution
451 // following a reset event.  Only the absolutely necessary set is performed,
452 // after which the application supplied entry() routine is called.  Any fancy
453 // actions (such as making decisions based on the reset cause register, and
454 // resetting the bits in that register) are left solely in the hands of the
455 // application.
456 //
457 //*****************************************************************************
Reset_Handler(void)458 __weak void Reset_Handler(void)
459 {
460     //
461     // Initialize the device
462     //
463     SystemInit();
464 
465     //
466     // Call the application's entry point.
467     //
468     __low_level_init();
469 }
470 
471 //*****************************************************************************
472 //
473 // This is the code that gets called when the processor receives an unexpected
474 // interrupt.  This simply enters an infinite loop, preserving the system state
475 // for examination by a debugger.
476 //
477 //*****************************************************************************
Default_Handler(void)478 static void Default_Handler(void)
479 {
480     //
481     // Go into an infinite loop.
482     //
483     while (1)
484     {
485     }
486 }
487 
488