]> git.gir.st - tmk_keyboard.git/blob - tmk_core/tool/mbed/mbed-sdk/libraries/mbed/targets/cmsis/TARGET_Freescale/TARGET_MCU_K64F/TOOLCHAIN_IAR/startup_MK64F12.s
Merge commit '1fe4406f374291ab2e86e95a97341fd9c475fcb8'
[tmk_keyboard.git] / tmk_core / tool / mbed / mbed-sdk / libraries / mbed / targets / cmsis / TARGET_Freescale / TARGET_MCU_K64F / TOOLCHAIN_IAR / startup_MK64F12.s
1 /**************************************************
2 *
3 * Copyright 2010 IAR Systems. All rights reserved.
4 *
5 * $Revision: 16 $
6 *
7 **************************************************/
8
9 ;
10 ; The modules in this file are included in the libraries, and may be replaced
11 ; by any user-defined modules that define the PUBLIC symbol _program_start or
12 ; a user defined start symbol.
13 ; To override the cstartup defined in the library, simply add your modified
14 ; version to the workbench project.
15 ;
16 ; The vector table is normally located at address 0.
17 ; When debugging in RAM, it can be located in RAM, aligned to at least 2^6.
18 ; The name "__vector_table" has special meaning for C-SPY:
19 ; it is where the SP start value is found, and the NVIC vector
20 ; table register (VTOR) is initialized to this address if != 0.
21 ;
22 ; Cortex-M version
23 ;
24
25 MODULE ?cstartup
26
27 ;; Forward declaration of sections.
28 SECTION CSTACK:DATA:NOROOT(3)
29
30 SECTION .intvec:CODE:ROOT(2)
31
32 EXTERN __iar_program_start
33 EXTERN SystemInit
34 PUBLIC __vector_table
35
36 DATA
37 __vector_table
38 DCD sfe(CSTACK) ; Top of Stack
39 DCD Reset_Handler ; Reset Handler
40 DCD NMI_Handler ; NMI Handler
41 DCD HardFault_Handler ; Hard Fault Handler
42 DCD MemManage_Handler ; MPU Fault Handler
43 DCD BusFault_Handler ; Bus Fault Handler
44 DCD UsageFault_Handler ; Usage Fault Handler
45 DCD 0 ; Reserved
46 DCD 0 ; Reserved
47 DCD 0 ; Reserved
48 DCD 0 ; Reserved
49 DCD SVC_Handler ; SVCall Handler
50 DCD DebugMon_Handler ; Debug Monitor Handler
51 DCD 0 ; Reserved
52 DCD PendSV_Handler ; PendSV Handler
53 DCD SysTick_Handler ; SysTick Handler
54 ; External Interrupts
55 DCD DMA0_IRQHandler ; DMA Channel 0 Transfer Complete
56 DCD DMA1_IRQHandler ; DMA Channel 1 Transfer Complete
57 DCD DMA2_IRQHandler ; DMA Channel 2 Transfer Complete
58 DCD DMA3_IRQHandler ; DMA Channel 3 Transfer Complete
59 DCD DMA4_IRQHandler ; DMA Channel 4 Transfer Complete
60 DCD DMA5_IRQHandler ; DMA Channel 5 Transfer Complete
61 DCD DMA6_IRQHandler ; DMA Channel 6 Transfer Complete
62 DCD DMA7_IRQHandler ; DMA Channel 7 Transfer Complete
63 DCD DMA8_IRQHandler ; DMA Channel 8 Transfer Complete
64 DCD DMA9_IRQHandler ; DMA Channel 9 Transfer Complete
65 DCD DMA10_IRQHandler ; DMA Channel 10 Transfer Complete
66 DCD DMA11_IRQHandler ; DMA Channel 11 Transfer Complete
67 DCD DMA12_IRQHandler ; DMA Channel 12 Transfer Complete
68 DCD DMA13_IRQHandler ; DMA Channel 13 Transfer Complete
69 DCD DMA14_IRQHandler ; DMA Channel 14 Transfer Complete
70 DCD DMA15_IRQHandler ; DMA Channel 15 Transfer Complete
71 DCD DMA_Error_IRQHandler ; DMA Error Interrupt
72 DCD MCM_IRQHandler ; Normal Interrupt
73 DCD FTFE_IRQHandler ; FTFE Command complete interrupt
74 DCD Read_Collision_IRQHandler ; Read Collision Interrupt
75 DCD LVD_LVW_IRQHandler ; Low Voltage Detect, Low Voltage Warning
76 DCD LLW_IRQHandler ; Low Leakage Wakeup
77 DCD Watchdog_IRQHandler ; WDOG Interrupt
78 DCD RNG_IRQHandler ; RNG Interrupt
79 DCD I2C0_IRQHandler ; I2C0 interrupt
80 DCD I2C1_IRQHandler ; I2C1 interrupt
81 DCD SPI0_IRQHandler ; SPI0 Interrupt
82 DCD SPI1_IRQHandler ; SPI1 Interrupt
83 DCD I2S0_Tx_IRQHandler ; I2S0 transmit interrupt
84 DCD I2S0_Rx_IRQHandler ; I2S0 receive interrupt
85 DCD UART0_LON_IRQHandler ; UART0 LON interrupt
86 DCD UART0_RX_TX_IRQHandler ; UART0 Receive/Transmit interrupt
87 DCD UART0_ERR_IRQHandler ; UART0 Error interrupt
88 DCD UART1_RX_TX_IRQHandler ; UART1 Receive/Transmit interrupt
89 DCD UART1_ERR_IRQHandler ; UART1 Error interrupt
90 DCD UART2_RX_TX_IRQHandler ; UART2 Receive/Transmit interrupt
91 DCD UART2_ERR_IRQHandler ; UART2 Error interrupt
92 DCD UART3_RX_TX_IRQHandler ; UART3 Receive/Transmit interrupt
93 DCD UART3_ERR_IRQHandler ; UART3 Error interrupt
94 DCD ADC0_IRQHandler ; ADC0 interrupt
95 DCD CMP0_IRQHandler ; CMP0 interrupt
96 DCD CMP1_IRQHandler ; CMP1 interrupt
97 DCD FTM0_IRQHandler ; FTM0 fault, overflow and channels interrupt
98 DCD FTM1_IRQHandler ; FTM1 fault, overflow and channels interrupt
99 DCD FTM2_IRQHandler ; FTM2 fault, overflow and channels interrupt
100 DCD CMT_IRQHandler ; CMT interrupt
101 DCD RTC_IRQHandler ; RTC interrupt
102 DCD RTC_Seconds_IRQHandler ; RTC seconds interrupt
103 DCD PIT0_IRQHandler ; PIT timer channel 0 interrupt
104 DCD PIT1_IRQHandler ; PIT timer channel 1 interrupt
105 DCD PIT2_IRQHandler ; PIT timer channel 2 interrupt
106 DCD PIT3_IRQHandler ; PIT timer channel 3 interrupt
107 DCD PDB0_IRQHandler ; PDB0 Interrupt
108 DCD USB0_IRQHandler ; USB0 interrupt
109 DCD USBDCD_IRQHandler ; USBDCD Interrupt
110 DCD Reserved71_IRQHandler ; Reserved interrupt 71
111 DCD DAC0_IRQHandler ; DAC0 interrupt
112 DCD MCG_IRQHandler ; MCG Interrupt
113 DCD LPTimer_IRQHandler ; LPTimer interrupt
114 DCD PORTA_IRQHandler ; Port A interrupt
115 DCD PORTB_IRQHandler ; Port B interrupt
116 DCD PORTC_IRQHandler ; Port C interrupt
117 DCD PORTD_IRQHandler ; Port D interrupt
118 DCD PORTE_IRQHandler ; Port E interrupt
119 DCD SWI_IRQHandler ; Software interrupt
120 DCD SPI2_IRQHandler ; SPI2 Interrupt
121 DCD UART4_RX_TX_IRQHandler ; UART4 Receive/Transmit interrupt
122 DCD UART4_ERR_IRQHandler ; UART4 Error interrupt
123 DCD UART5_RX_TX_IRQHandler ; UART5 Receive/Transmit interrupt
124 DCD UART5_ERR_IRQHandler ; UART5 Error interrupt
125 DCD CMP2_IRQHandler ; CMP2 interrupt
126 DCD FTM3_IRQHandler ; FTM3 fault, overflow and channels interrupt
127 DCD DAC1_IRQHandler ; DAC1 interrupt
128 DCD ADC1_IRQHandler ; ADC1 interrupt
129 DCD I2C2_IRQHandler ; I2C2 interrupt
130 DCD CAN0_ORed_Message_buffer_IRQHandler ; CAN0 OR'd message buffers interrupt
131 DCD CAN0_Bus_Off_IRQHandler ; CAN0 bus off interrupt
132 DCD CAN0_Error_IRQHandler ; CAN0 error interrupt
133 DCD CAN0_Tx_Warning_IRQHandler ; CAN0 Tx warning interrupt
134 DCD CAN0_Rx_Warning_IRQHandler ; CAN0 Rx warning interrupt
135 DCD CAN0_Wake_Up_IRQHandler ; CAN0 wake up interrupt
136 DCD SDHC_IRQHandler ; SDHC interrupt
137 DCD ENET_1588_Timer_IRQHandler ; Ethernet MAC IEEE 1588 Timer Interrupt
138 DCD ENET_Transmit_IRQHandler ; Ethernet MAC Transmit Interrupt
139 DCD ENET_Receive_IRQHandler ; Ethernet MAC Receive Interrupt
140 DCD ENET_Error_IRQHandler ; Ethernet MAC Error and miscelaneous Interrupt
141
142 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
143 ;;Flash Configuration
144 ;;16-byte flash configuration field that stores default protection settings (loaded on reset)
145 ;;and security information that allows the MCU to restrict acces to the FTFL module.
146
147 BackDoorK0 EQU 0xFF
148 BackDoorK1 EQU 0xFF
149 BackDoorK2 EQU 0xFF
150 BackDoorK3 EQU 0xFF
151 BackDoorK4 EQU 0xFF
152 BackDoorK5 EQU 0xFF
153 BackDoorK6 EQU 0xFF
154 BackDoorK7 EQU 0xFF
155
156 nFPROT0 EQU 0x00
157 FPROT0 EQU nFPROT0^0xFF
158
159 nFPROT1 EQU 0x00
160 FPROT1 EQU nFPROT1^0xFF
161
162 nFPROT2 EQU 0x00
163 FPROT2 EQU nFPROT2^0xFF
164
165 nFPROT3 EQU 0x00
166 FPROT3 EQU nFPROT3^0xFF
167
168 nFEPROT EQU 0x00
169 FEPROT EQU nFEPROT^0xFF
170
171 nFDPROT EQU 0x00
172 FDPROT EQU nFDPROT^0xFF
173
174 FOPT EQU 0xFD
175
176 FSEC EQU 0xFE
177 SECTION FlashConfig:CONST:REORDER:ROOT(2)
178 Config:
179 DATA
180 DCB BackDoorK0, BackDoorK1, BackDoorK2, BackDoorK3
181 DCB BackDoorK4, BackDoorK5, BackDoorK6, BackDoorK7
182 DCB FPROT0, FPROT1, FPROT2, FPROT3
183 DCB FSEC, FOPT, FEPROT, FDPROT
184 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
185 ;;
186 ;; Default interrupt handlers.
187 ;;
188 THUMB
189 PUBWEAK Reset_Handler
190 SECTION .text:CODE:NOROOT:REORDER(2)
191 Reset_Handler
192
193 LDR R0, =SystemInit
194 BLX R0
195 LDR R0, =__iar_program_start
196 BX R0
197
198 PUBWEAK NMI_Handler
199 PUBWEAK HardFault_Handler
200 PUBWEAK MemManage_Handler
201 PUBWEAK BusFault_Handler
202 PUBWEAK UsageFault_Handler
203 PUBWEAK SVC_Handler
204 PUBWEAK DebugMon_Handler
205 PUBWEAK PendSV_Handler
206 PUBWEAK SysTick_Handler
207 PUBWEAK DMA0_IRQHandler
208 PUBWEAK DMA1_IRQHandler
209 PUBWEAK DMA2_IRQHandler
210 PUBWEAK DMA3_IRQHandler
211 PUBWEAK DMA4_IRQHandler
212 PUBWEAK DMA5_IRQHandler
213 PUBWEAK DMA6_IRQHandler
214 PUBWEAK DMA7_IRQHandler
215 PUBWEAK DMA8_IRQHandler
216 PUBWEAK DMA9_IRQHandler
217 PUBWEAK DMA10_IRQHandler
218 PUBWEAK DMA11_IRQHandler
219 PUBWEAK DMA12_IRQHandler
220 PUBWEAK DMA13_IRQHandler
221 PUBWEAK DMA14_IRQHandler
222 PUBWEAK DMA15_IRQHandler
223 PUBWEAK DMA_Error_IRQHandler
224 PUBWEAK MCM_IRQHandler
225 PUBWEAK FTFE_IRQHandler
226 PUBWEAK Read_Collision_IRQHandler
227 PUBWEAK LVD_LVW_IRQHandler
228 PUBWEAK LLW_IRQHandler
229 PUBWEAK Watchdog_IRQHandler
230 PUBWEAK RNG_IRQHandler
231 PUBWEAK I2C0_IRQHandler
232 PUBWEAK I2C1_IRQHandler
233 PUBWEAK SPI0_IRQHandler
234 PUBWEAK SPI1_IRQHandler
235 PUBWEAK I2S0_Tx_IRQHandler
236 PUBWEAK I2S0_Rx_IRQHandler
237 PUBWEAK UART0_LON_IRQHandler
238 PUBWEAK UART0_RX_TX_IRQHandler
239 PUBWEAK UART0_ERR_IRQHandler
240 PUBWEAK UART1_RX_TX_IRQHandler
241 PUBWEAK UART1_ERR_IRQHandler
242 PUBWEAK UART2_RX_TX_IRQHandler
243 PUBWEAK UART2_ERR_IRQHandler
244 PUBWEAK UART3_RX_TX_IRQHandler
245 PUBWEAK UART3_ERR_IRQHandler
246 PUBWEAK ADC0_IRQHandler
247 PUBWEAK CMP0_IRQHandler
248 PUBWEAK CMP1_IRQHandler
249 PUBWEAK FTM0_IRQHandler
250 PUBWEAK FTM1_IRQHandler
251 PUBWEAK FTM2_IRQHandler
252 PUBWEAK CMT_IRQHandler
253 PUBWEAK RTC_IRQHandler
254 PUBWEAK RTC_Seconds_IRQHandler
255 PUBWEAK PIT0_IRQHandler
256 PUBWEAK PIT1_IRQHandler
257 PUBWEAK PIT2_IRQHandler
258 PUBWEAK PIT3_IRQHandler
259 PUBWEAK PDB0_IRQHandler
260 PUBWEAK USB0_IRQHandler
261 PUBWEAK USBDCD_IRQHandler
262 PUBWEAK Reserved71_IRQHandler
263 PUBWEAK DAC0_IRQHandler
264 PUBWEAK MCG_IRQHandler
265 PUBWEAK LPTimer_IRQHandler
266 PUBWEAK PORTA_IRQHandler
267 PUBWEAK PORTB_IRQHandler
268 PUBWEAK PORTC_IRQHandler
269 PUBWEAK PORTD_IRQHandler
270 PUBWEAK PORTE_IRQHandler
271 PUBWEAK SWI_IRQHandler
272 PUBWEAK SPI2_IRQHandler
273 PUBWEAK UART4_RX_TX_IRQHandler
274 PUBWEAK UART4_ERR_IRQHandler
275 PUBWEAK UART5_RX_TX_IRQHandler
276 PUBWEAK UART5_ERR_IRQHandler
277 PUBWEAK CMP2_IRQHandler
278 PUBWEAK FTM3_IRQHandler
279 PUBWEAK DAC1_IRQHandler
280 PUBWEAK ADC1_IRQHandler
281 PUBWEAK I2C2_IRQHandler
282 PUBWEAK CAN0_ORed_Message_buffer_IRQHandler
283 PUBWEAK CAN0_Bus_Off_IRQHandler
284 PUBWEAK CAN0_Error_IRQHandler
285 PUBWEAK CAN0_Tx_Warning_IRQHandler
286 PUBWEAK CAN0_Rx_Warning_IRQHandler
287 PUBWEAK CAN0_Wake_Up_IRQHandler
288 PUBWEAK SDHC_IRQHandler
289 PUBWEAK ENET_1588_Timer_IRQHandler
290 PUBWEAK ENET_Transmit_IRQHandler
291 PUBWEAK ENET_Receive_IRQHandler
292 PUBWEAK ENET_Error_IRQHandler
293
294 SECTION .text:CODE:REORDER:NOROOT(1)
295 THUMB
296 NMI_Handler
297 HardFault_Handler
298 MemManage_Handler
299 BusFault_Handler
300 UsageFault_Handler
301 SVC_Handler
302 DebugMon_Handler
303 PendSV_Handler
304 SysTick_Handler
305 DMA0_IRQHandler
306 DMA1_IRQHandler
307 DMA2_IRQHandler
308 DMA3_IRQHandler
309 DMA4_IRQHandler
310 DMA5_IRQHandler
311 DMA6_IRQHandler
312 DMA7_IRQHandler
313 DMA8_IRQHandler
314 DMA9_IRQHandler
315 DMA10_IRQHandler
316 DMA11_IRQHandler
317 DMA12_IRQHandler
318 DMA13_IRQHandler
319 DMA14_IRQHandler
320 DMA15_IRQHandler
321 DMA_Error_IRQHandler
322 MCM_IRQHandler
323 FTFE_IRQHandler
324 Read_Collision_IRQHandler
325 LVD_LVW_IRQHandler
326 LLW_IRQHandler
327 Watchdog_IRQHandler
328 RNG_IRQHandler
329 I2C0_IRQHandler
330 I2C1_IRQHandler
331 SPI0_IRQHandler
332 SPI1_IRQHandler
333 I2S0_Tx_IRQHandler
334 I2S0_Rx_IRQHandler
335 UART0_LON_IRQHandler
336 UART0_RX_TX_IRQHandler
337 UART0_ERR_IRQHandler
338 UART1_RX_TX_IRQHandler
339 UART1_ERR_IRQHandler
340 UART2_RX_TX_IRQHandler
341 UART2_ERR_IRQHandler
342 UART3_RX_TX_IRQHandler
343 UART3_ERR_IRQHandler
344 ADC0_IRQHandler
345 CMP0_IRQHandler
346 CMP1_IRQHandler
347 FTM0_IRQHandler
348 FTM1_IRQHandler
349 FTM2_IRQHandler
350 CMT_IRQHandler
351 RTC_IRQHandler
352 RTC_Seconds_IRQHandler
353 PIT0_IRQHandler
354 PIT1_IRQHandler
355 PIT2_IRQHandler
356 PIT3_IRQHandler
357 PDB0_IRQHandler
358 USB0_IRQHandler
359 USBDCD_IRQHandler
360 Reserved71_IRQHandler
361 DAC0_IRQHandler
362 MCG_IRQHandler
363 LPTimer_IRQHandler
364 PORTA_IRQHandler
365 PORTB_IRQHandler
366 PORTC_IRQHandler
367 PORTD_IRQHandler
368 PORTE_IRQHandler
369 SWI_IRQHandler
370 SPI2_IRQHandler
371 UART4_RX_TX_IRQHandler
372 UART4_ERR_IRQHandler
373 UART5_RX_TX_IRQHandler
374 UART5_ERR_IRQHandler
375 CMP2_IRQHandler
376 FTM3_IRQHandler
377 DAC1_IRQHandler
378 ADC1_IRQHandler
379 I2C2_IRQHandler
380 CAN0_ORed_Message_buffer_IRQHandler
381 CAN0_Bus_Off_IRQHandler
382 CAN0_Error_IRQHandler
383 CAN0_Tx_Warning_IRQHandler
384 CAN0_Rx_Warning_IRQHandler
385 CAN0_Wake_Up_IRQHandler
386 SDHC_IRQHandler
387 ENET_1588_Timer_IRQHandler
388 ENET_Transmit_IRQHandler
389 ENET_Receive_IRQHandler
390 ENET_Error_IRQHandler
391 Default_Handler
392
393 B Default_Handler
394 END
Imprint / Impressum