-
Notifications
You must be signed in to change notification settings - Fork 164
/
Copy pathstartup_tm4c.c
312 lines (298 loc) · 16.7 KB
/
startup_tm4c.c
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
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
/* startup code for TM4C MCU */
#include "tm4c_cmsis.h"
extern int CSTACK$$Limit;
void __iar_program_start(void);
void Unused_Handler(void);
int const __vector_table[] @ ".intvec" = {
(int)&CSTACK$$Limit,
(int)&__iar_program_start,
(int)&NMI_Handler,
(int)&HardFault_Handler,
(int)&MemManage_Handler,
(int)&BusFault_Handler,
(int)&UsageFault_Handler,
0, /* Reserved */
0, /* Reserved */
0, /* Reserved */
0, /* Reserved */
(int)&SVC_Handler,
(int)&DebugMon_Handler,
0, /* Reserved */
(int)&PendSV_Handler,
(int)&SysTick_Handler,
/* external interrupts (IRQs) ... */
(int)&GPIOPortA_IRQHandler, /* GPIO Port A */
(int)&GPIOPortB_IRQHandler, /* GPIO Port B */
(int)&GPIOPortC_IRQHandler, /* GPIO Port C */
(int)&GPIOPortD_IRQHandler, /* GPIO Port D */
(int)&GPIOPortE_IRQHandler, /* GPIO Port E */
(int)&UART0_IRQHandler, /* UART0 Rx and Tx */
(int)&UART1_IRQHandler, /* UART1 Rx and Tx */
(int)&SSI0_IRQHandler, /* SSI0 Rx and Tx */
(int)&I2C0_IRQHandler, /* I2C0 Master and Slave */
(int)&PWMFault_IRQHandler, /* PWM Fault */
(int)&PWMGen0_IRQHandler, /* PWM Generator 0 */
(int)&PWMGen1_IRQHandler, /* PWM Generator 1 */
(int)&PWMGen2_IRQHandler, /* PWM Generator 2 */
(int)&QEI0_IRQHandler, /* Quadrature Encoder 0 */
(int)&ADCSeq0_IRQHandler, /* ADC Sequence 0 */
(int)&ADCSeq1_IRQHandler, /* ADC Sequence 1 */
(int)&ADCSeq2_IRQHandler, /* ADC Sequence 2 */
(int)&ADCSeq3_IRQHandler, /* ADC Sequence 3 */
(int)&Watchdog_IRQHandler, /* Watchdog timer */
(int)&Timer0A_IRQHandler, /* Timer 0 subtimer A */
(int)&Timer0B_IRQHandler, /* Timer 0 subtimer B */
(int)&Timer1A_IRQHandler, /* Timer 1 subtimer A */
(int)&Timer1B_IRQHandler, /* Timer 1 subtimer B */
(int)&Timer2A_IRQHandler, /* Timer 2 subtimer A */
(int)&Timer2B_IRQHandler, /* Timer 2 subtimer B */
(int)&Comp0_IRQHandler, /* Analog Comparator 0 */
(int)&Comp1_IRQHandler, /* Analog Comparator 1 */
(int)&Comp2_IRQHandler, /* Analog Comparator 2 */
(int)&SysCtrl_IRQHandler, /* System Control (PLL,OSC,BO) */
(int)&FlashCtrl_IRQHandler, /* FLASH Control */
(int)&GPIOPortF_IRQHandler, /* GPIO Port F */
(int)&GPIOPortG_IRQHandler, /* GPIO Port G */
(int)&GPIOPortH_IRQHandler, /* GPIO Port H */
(int)&UART2_IRQHandler, /* UART2 Rx and Tx */
(int)&SSI1_IRQHandler , /* SSI1 Rx and Tx */
(int)&Timer3A_IRQHandler, /* Timer 3 subtimer A */
(int)&Timer3B_IRQHandler, /* Timer 3 subtimer B */
(int)&I2C1_IRQHandler, /* I2C1 Master and Slave */
(int)&QEI1_IRQHandler, /* Quadrature Encoder 1 */
(int)&CAN0_IRQHandler, /* CAN0 */
(int)&CAN1_IRQHandler, /* CAN1 */
(int)&CAN2_IRQHandler, /* CAN2 */
0, /* Reserved */
(int)&Hibernate_IRQHandler, /* Hibernate */
(int)&USB0_IRQHandler, /* USB0 */
(int)&PWMGen3_IRQHandler, /* PWM Generator 3 */
(int)&uDMAST_IRQHandler, /* uDMA Software Transfer */
(int)&uDMAError_IRQHandler, /* uDMA Error */
(int)&ADC1Seq0_IRQHandler, /* ADC1 Sequence 0 */
(int)&ADC1Seq1_IRQHandler, /* ADC1 Sequence 1 */
(int)&ADC1Seq2_IRQHandler, /* ADC1 Sequence 2 */
(int)&ADC1Seq3_IRQHandler, /* ADC1 Sequence 3 */
0, /* Reserved */
0, /* Reserved */
(int)&GPIOPortJ_IRQHandler, /* GPIO Port J */
(int)&GPIOPortK_IRQHandler, /* GPIO Port K */
(int)&GPIOPortL_IRQHandler, /* GPIO Port L */
(int)&SSI2_IRQHandler, /* SSI2 Rx and Tx */
(int)&SSI3_IRQHandler, /* SSI3 Rx and Tx */
(int)&UART3_IRQHandler, /* UART3 Rx and Tx */
(int)&UART4_IRQHandler, /* UART4 Rx and Tx */
(int)&UART5_IRQHandler, /* UART5 Rx and Tx */
(int)&UART6_IRQHandler, /* UART6 Rx and Tx */
(int)&UART7_IRQHandler, /* UART7 Rx and Tx */
0, /* Reserved */
0, /* Reserved */
0, /* Reserved */
0, /* Reserved */
(int)&I2C2_IRQHandler, /* I2C2 Master and Slave */
(int)&I2C3_IRQHandler, /* I2C3 Master and Slave */
(int)&Timer4A_IRQHandler, /* Timer 4 subtimer A */
(int)&Timer4B_IRQHandler, /* Timer 4 subtimer B */
0, /* Reserved */
0, /* Reserved */
0, /* Reserved */
0, /* Reserved */
0, /* Reserved */
0, /* Reserved */
0, /* Reserved */
0, /* Reserved */
0, /* Reserved */
0, /* Reserved */
0, /* Reserved */
0, /* Reserved */
0, /* Reserved */
0, /* Reserved */
0, /* Reserved */
0, /* Reserved */
0, /* Reserved */
0, /* Reserved */
0, /* Reserved */
0, /* Reserved */
(int)&Timer5A_IRQHandler, /* Timer 5 subtimer A */
(int)&Timer5B_IRQHandler, /* Timer 5 subtimer B */
(int)&WideTimer0A_IRQHandler, /* Wide Timer 0 subtimer A */
(int)&WideTimer0B_IRQHandler, /* Wide Timer 0 subtimer B */
(int)&WideTimer1A_IRQHandler, /* Wide Timer 1 subtimer A */
(int)&WideTimer1B_IRQHandler, /* Wide Timer 1 subtimer B */
(int)&WideTimer2A_IRQHandler, /* Wide Timer 2 subtimer A */
(int)&WideTimer2B_IRQHandler, /* Wide Timer 2 subtimer B */
(int)&WideTimer3A_IRQHandler, /* Wide Timer 3 subtimer A */
(int)&WideTimer3B_IRQHandler, /* Wide Timer 3 subtimer B */
(int)&WideTimer4A_IRQHandler, /* Wide Timer 4 subtimer A */
(int)&WideTimer4B_IRQHandler, /* Wide Timer 4 subtimer B */
(int)&WideTimer5A_IRQHandler, /* Wide Timer 5 subtimer A */
(int)&WideTimer5B_IRQHandler, /* Wide Timer 5 subtimer B */
(int)&FPU_IRQHandler, /* FPU */
0, /* Reserved */
0, /* Reserved */
(int)&I2C4_IRQHandler, /* I2C4 Master and Slave */
(int)&I2C5_IRQHandler, /* I2C5 Master and Slave */
(int)&GPIOPortM_IRQHandler, /* GPIO Port M */
(int)&GPIOPortN_IRQHandler, /* GPIO Port N */
(int)&QEI2_IRQHandler, /* Quadrature Encoder 2 */
0, /* Reserved */
0, /* Reserved */
(int)&GPIOPortP0_IRQHandler, /* GPIO Port P (Summary or P0) */
(int)&GPIOPortP1_IRQHandler, /* GPIO Port P1 */
(int)&GPIOPortP2_IRQHandler, /* GPIO Port P2 */
(int)&GPIOPortP3_IRQHandler, /* GPIO Port P3 */
(int)&GPIOPortP4_IRQHandler, /* GPIO Port P4 */
(int)&GPIOPortP5_IRQHandler, /* GPIO Port P5 */
(int)&GPIOPortP6_IRQHandler, /* GPIO Port P6 */
(int)&GPIOPortP7_IRQHandler, /* GPIO Port P7 */
(int)&GPIOPortQ0_IRQHandler, /* GPIO Port Q (Summary or Q0) */
(int)&GPIOPortQ1_IRQHandler, /* GPIO Port Q1 */
(int)&GPIOPortQ2_IRQHandler, /* GPIO Port Q2 */
(int)&GPIOPortQ3_IRQHandler, /* GPIO Port Q3 */
(int)&GPIOPortQ4_IRQHandler, /* GPIO Port Q4 */
(int)&GPIOPortQ5_IRQHandler, /* GPIO Port Q5 */
(int)&GPIOPortQ6_IRQHandler, /* GPIO Port Q6 */
(int)&GPIOPortQ7_IRQHandler, /* GPIO Port Q7 */
(int)&GPIOPortR_IRQHandler, /* GPIO Port R */
(int)&GPIOPortS_IRQHandler, /* GPIO Port S */
(int)&PWM1Gen0_IRQHandler, /* PWM 1 Generator 0 */
(int)&PWM1Gen1_IRQHandler, /* PWM 1 Generator 1 */
(int)&PWM1Gen2_IRQHandler, /* PWM 1 Generator 2 */
(int)&PWM1Gen3_IRQHandler, /* PWM 1 Generator 3 */
(int)&PWM1Fault_IRQHandler /* PWM 1 Fault */
};
__stackless void HardFault_Handler(void) {
assert_failed("HardFault", __LINE__);
}
__stackless void NMI_Handler(void) {
assert_failed("NMI", __LINE__);
}
__stackless void MemManage_Handler(void) {
assert_failed("MemManage", __LINE__);
}
__stackless void BusFault_Handler(void) {
assert_failed("BusFault", __LINE__);
}
__stackless void UsageFault_Handler(void) {
assert_failed("UsageFault", __LINE__);
}
__stackless void Unused_Handler(void) {
assert_failed("Unused", __LINE__);
}
#pragma weak SVC_Handler = Unused_Handler
#pragma weak DebugMon_Handler = Unused_Handler
#pragma weak PendSV_Handler = Unused_Handler
#pragma weak SysTick_Handler = Unused_Handler
#pragma weak GPIOPortA_IRQHandler = Unused_Handler
#pragma weak GPIOPortB_IRQHandler = Unused_Handler
#pragma weak GPIOPortC_IRQHandler = Unused_Handler
#pragma weak GPIOPortD_IRQHandler = Unused_Handler
#pragma weak GPIOPortE_IRQHandler = Unused_Handler
#pragma weak UART0_IRQHandler = Unused_Handler
#pragma weak UART1_IRQHandler = Unused_Handler
#pragma weak SSI0_IRQHandler = Unused_Handler
#pragma weak I2C0_IRQHandler = Unused_Handler
#pragma weak PWMFault_IRQHandler = Unused_Handler
#pragma weak PWMGen0_IRQHandler = Unused_Handler
#pragma weak PWMGen1_IRQHandler = Unused_Handler
#pragma weak PWMGen2_IRQHandler = Unused_Handler
#pragma weak QEI0_IRQHandler = Unused_Handler
#pragma weak ADCSeq0_IRQHandler = Unused_Handler
#pragma weak ADCSeq1_IRQHandler = Unused_Handler
#pragma weak ADCSeq2_IRQHandler = Unused_Handler
#pragma weak ADCSeq3_IRQHandler = Unused_Handler
#pragma weak Watchdog_IRQHandler = Unused_Handler
#pragma weak Timer0A_IRQHandler = Unused_Handler
#pragma weak Timer0B_IRQHandler = Unused_Handler
#pragma weak Timer1A_IRQHandler = Unused_Handler
#pragma weak Timer1B_IRQHandler = Unused_Handler
#pragma weak Timer2A_IRQHandler = Unused_Handler
#pragma weak Timer2B_IRQHandler = Unused_Handler
#pragma weak Comp0_IRQHandler = Unused_Handler
#pragma weak Comp1_IRQHandler = Unused_Handler
#pragma weak Comp2_IRQHandler = Unused_Handler
#pragma weak SysCtrl_IRQHandler = Unused_Handler
#pragma weak FlashCtrl_IRQHandler = Unused_Handler
#pragma weak GPIOPortF_IRQHandler = Unused_Handler
#pragma weak GPIOPortG_IRQHandler = Unused_Handler
#pragma weak GPIOPortH_IRQHandler = Unused_Handler
#pragma weak UART2_IRQHandler = Unused_Handler
#pragma weak SSI1_IRQHandler = Unused_Handler
#pragma weak Timer3A_IRQHandler = Unused_Handler
#pragma weak Timer3B_IRQHandler = Unused_Handler
#pragma weak I2C1_IRQHandler = Unused_Handler
#pragma weak QEI1_IRQHandler = Unused_Handler
#pragma weak CAN0_IRQHandler = Unused_Handler
#pragma weak CAN1_IRQHandler = Unused_Handler
#pragma weak CAN2_IRQHandler = Unused_Handler
#pragma weak Hibernate_IRQHandler = Unused_Handler
#pragma weak USB0_IRQHandler = Unused_Handler
#pragma weak PWMGen3_IRQHandler = Unused_Handler
#pragma weak uDMAST_IRQHandler = Unused_Handler
#pragma weak uDMAError_IRQHandler = Unused_Handler
#pragma weak ADC1Seq0_IRQHandler = Unused_Handler
#pragma weak ADC1Seq1_IRQHandler = Unused_Handler
#pragma weak ADC1Seq2_IRQHandler = Unused_Handler
#pragma weak ADC1Seq3_IRQHandler = Unused_Handler
#pragma weak I2S0_IRQHandler = Unused_Handler
#pragma weak EBI0_IRQHandler = Unused_Handler
#pragma weak GPIOPortJ_IRQHandler = Unused_Handler
#pragma weak GPIOPortK_IRQHandler = Unused_Handler
#pragma weak GPIOPortL_IRQHandler = Unused_Handler
#pragma weak SSI2_IRQHandler = Unused_Handler
#pragma weak SSI3_IRQHandler = Unused_Handler
#pragma weak UART3_IRQHandler = Unused_Handler
#pragma weak UART4_IRQHandler = Unused_Handler
#pragma weak UART5_IRQHandler = Unused_Handler
#pragma weak UART6_IRQHandler = Unused_Handler
#pragma weak UART7_IRQHandler = Unused_Handler
#pragma weak I2C2_IRQHandler = Unused_Handler
#pragma weak I2C3_IRQHandler = Unused_Handler
#pragma weak Timer4A_IRQHandler = Unused_Handler
#pragma weak Timer4B_IRQHandler = Unused_Handler
#pragma weak Timer5A_IRQHandler = Unused_Handler
#pragma weak Timer5B_IRQHandler = Unused_Handler
#pragma weak WideTimer0A_IRQHandler = Unused_Handler
#pragma weak WideTimer0B_IRQHandler = Unused_Handler
#pragma weak WideTimer1A_IRQHandler = Unused_Handler
#pragma weak WideTimer1B_IRQHandler = Unused_Handler
#pragma weak WideTimer2A_IRQHandler = Unused_Handler
#pragma weak WideTimer2B_IRQHandler = Unused_Handler
#pragma weak WideTimer3A_IRQHandler = Unused_Handler
#pragma weak WideTimer3B_IRQHandler = Unused_Handler
#pragma weak WideTimer4A_IRQHandler = Unused_Handler
#pragma weak WideTimer4B_IRQHandler = Unused_Handler
#pragma weak WideTimer5A_IRQHandler = Unused_Handler
#pragma weak WideTimer5B_IRQHandler = Unused_Handler
#pragma weak FPU_IRQHandler = Unused_Handler
#pragma weak PECI0_IRQHandler = Unused_Handler
#pragma weak LPC0_IRQHandler = Unused_Handler
#pragma weak I2C4_IRQHandler = Unused_Handler
#pragma weak I2C5_IRQHandler = Unused_Handler
#pragma weak GPIOPortM_IRQHandler = Unused_Handler
#pragma weak GPIOPortN_IRQHandler = Unused_Handler
#pragma weak QEI2_IRQHandler = Unused_Handler
#pragma weak Fan0_IRQHandler = Unused_Handler
#pragma weak GPIOPortP0_IRQHandler = Unused_Handler
#pragma weak GPIOPortP1_IRQHandler = Unused_Handler
#pragma weak GPIOPortP2_IRQHandler = Unused_Handler
#pragma weak GPIOPortP3_IRQHandler = Unused_Handler
#pragma weak GPIOPortP4_IRQHandler = Unused_Handler
#pragma weak GPIOPortP5_IRQHandler = Unused_Handler
#pragma weak GPIOPortP6_IRQHandler = Unused_Handler
#pragma weak GPIOPortP7_IRQHandler = Unused_Handler
#pragma weak GPIOPortQ0_IRQHandler = Unused_Handler
#pragma weak GPIOPortQ1_IRQHandler = Unused_Handler
#pragma weak GPIOPortQ2_IRQHandler = Unused_Handler
#pragma weak GPIOPortQ3_IRQHandler = Unused_Handler
#pragma weak GPIOPortQ4_IRQHandler = Unused_Handler
#pragma weak GPIOPortQ5_IRQHandler = Unused_Handler
#pragma weak GPIOPortQ6_IRQHandler = Unused_Handler
#pragma weak GPIOPortQ7_IRQHandler = Unused_Handler
#pragma weak GPIOPortR_IRQHandler = Unused_Handler
#pragma weak GPIOPortS_IRQHandler = Unused_Handler
#pragma weak PWM1Gen0_IRQHandler = Unused_Handler
#pragma weak PWM1Gen1_IRQHandler = Unused_Handler
#pragma weak PWM1Gen2_IRQHandler = Unused_Handler
#pragma weak PWM1Gen3_IRQHandler = Unused_Handler
#pragma weak PWM1Fault_IRQHandler = Unused_Handler