]> git.gir.st - tmk_keyboard.git/blob - tool/mbed/mbed-sdk/libraries/mbed/targets/cmsis/TARGET_Freescale/TARGET_K20XX/TARGET_K20D50M/TOOLCHAIN_ARM_STD/startup_MK20D5.s
Squashed 'tmk_core/' changes from 7967731..b9e0ea0
[tmk_keyboard.git] / tool / mbed / mbed-sdk / libraries / mbed / targets / cmsis / TARGET_Freescale / TARGET_K20XX / TARGET_K20D50M / TOOLCHAIN_ARM_STD / startup_MK20D5.s
1 ;/*****************************************************************************
2 ; * @file: startup_MK20D5.s
3 ; * @purpose: CMSIS Cortex-M4 Core Device Startup File for the
4 ; * MK20D5
5 ; * @version: 1.0
6 ; * @date: 2011-12-15
7 ; *
8 ; * Copyright: 1997 - 2015 Freescale Semiconductor, Inc. All Rights Reserved.
9 ;*
10 ; *------- <<< Use Configuration Wizard in Context Menu >>> ------------------
11 ; *
12 ; *****************************************************************************/
13
14
15 __initial_sp EQU 0x20002000 ; Top of RAM
16
17 PRESERVE8
18 THUMB
19
20
21 ; Vector Table Mapped to Address 0 at Reset
22
23 AREA RESET, DATA, READONLY
24 EXPORT __Vectors
25 EXPORT __Vectors_End
26 EXPORT __Vectors_Size
27
28 __Vectors DCD __initial_sp ; Top of Stack
29 DCD Reset_Handler ; Reset Handler
30 DCD NMI_Handler ; NMI Handler
31 DCD HardFault_Handler ; Hard Fault Handler
32 DCD MemManage_Handler ; MPU Fault Handler
33 DCD BusFault_Handler ; Bus Fault Handler
34 DCD UsageFault_Handler ; Usage Fault Handler
35 DCD 0 ; Reserved
36 DCD 0 ; Reserved
37 DCD 0 ; Reserved
38 DCD 0 ; Reserved
39 DCD SVC_Handler ; SVCall Handler
40 DCD DebugMon_Handler ; Debug Monitor Handler
41 DCD 0 ; Reserved
42 DCD PendSV_Handler ; PendSV Handler
43 DCD SysTick_Handler ; SysTick Handler
44
45 ; External Interrupts
46 DCD DMA0_IRQHandler ; DMA channel 0 transfer complete interrupt
47 DCD DMA1_IRQHandler ; DMA channel 1 transfer complete interrupt
48 DCD DMA2_IRQHandler ; DMA channel 2 transfer complete interrupt
49 DCD DMA3_IRQHandler ; DMA channel 3 transfer complete interrupt
50 DCD DMA_Error_IRQHandler ; DMA error interrupt
51 DCD Reserved21_IRQHandler ; Reserved interrupt 21
52 DCD FTFL_IRQHandler ; FTFL interrupt
53 DCD Read_Collision_IRQHandler ; Read collision interrupt
54 DCD LVD_LVW_IRQHandler ; Low Voltage Detect, Low Voltage Warning
55 DCD LLW_IRQHandler ; Low Leakage Wakeup
56 DCD Watchdog_IRQHandler ; WDOG interrupt
57 DCD I2C0_IRQHandler ; I2C0 interrupt
58 DCD SPI0_IRQHandler ; SPI0 interrupt
59 DCD I2S0_Tx_IRQHandler ; I2S0 transmit interrupt
60 DCD I2S0_Rx_IRQHandler ; I2S0 receive interrupt
61 DCD UART0_LON_IRQHandler ; UART0 LON interrupt
62 DCD UART0_RX_TX_IRQHandler ; UART0 receive/transmit interrupt
63 DCD UART0_ERR_IRQHandler ; UART0 error interrupt
64 DCD UART1_RX_TX_IRQHandler ; UART1 receive/transmit interrupt
65 DCD UART1_ERR_IRQHandler ; UART1 error interrupt
66 DCD UART2_RX_TX_IRQHandler ; UART2 receive/transmit interrupt
67 DCD UART2_ERR_IRQHandler ; UART2 error interrupt
68 DCD ADC0_IRQHandler ; ADC0 interrupt
69 DCD CMP0_IRQHandler ; CMP0 interrupt
70 DCD CMP1_IRQHandler ; CMP1 interrupt
71 DCD FTM0_IRQHandler ; FTM0 fault, overflow and channels interrupt
72 DCD FTM1_IRQHandler ; FTM1 fault, overflow and channels interrupt
73 DCD CMT_IRQHandler ; CMT interrupt
74 DCD RTC_IRQHandler ; RTC interrupt
75 DCD RTC_Seconds_IRQHandler ; RTC seconds interrupt
76 DCD PIT0_IRQHandler ; PIT timer channel 0 interrupt
77 DCD PIT1_IRQHandler ; PIT timer channel 1 interrupt
78 DCD PIT2_IRQHandler ; PIT timer channel 2 interrupt
79 DCD PIT3_IRQHandler ; PIT timer channel 3 interrupt
80 DCD PDB0_IRQHandler ; PDB0 interrupt
81 DCD USB0_IRQHandler ; USB0 interrupt
82 DCD USBDCD_IRQHandler ; USBDCD interrupt
83 DCD TSI0_IRQHandler ; TSI0 interrupt
84 DCD MCG_IRQHandler ; MCG interrupt
85 DCD LPTimer_IRQHandler ; LPTimer interrupt
86 DCD PORTA_IRQHandler ; Port A interrupt
87 DCD PORTB_IRQHandler ; Port B interrupt
88 DCD PORTC_IRQHandler ; Port C interrupt
89 DCD PORTD_IRQHandler ; Port D interrupt
90 DCD PORTE_IRQHandler ; Port E interrupt
91 DCD SWI_IRQHandler ; Software interrupt
92 __Vectors_End
93
94 __Vectors_Size EQU __Vectors_End - __Vectors
95
96 ; <h> Flash Configuration
97 ; <i> 16-byte flash configuration field that stores default protection settings (loaded on reset)
98 ; <i> and security information that allows the MCU to restrict acces to the FTFL module.
99 ; <h> Backdoor Comparison Key
100 ; <o0> Backdoor Key 0 <0x0-0xFF:2>
101 ; <o1> Backdoor Key 1 <0x0-0xFF:2>
102 ; <o2> Backdoor Key 2 <0x0-0xFF:2>
103 ; <o3> Backdoor Key 3 <0x0-0xFF:2>
104 ; <o4> Backdoor Key 4 <0x0-0xFF:2>
105 ; <o5> Backdoor Key 5 <0x0-0xFF:2>
106 ; <o6> Backdoor Key 6 <0x0-0xFF:2>
107 ; <o7> Backdoor Key 7 <0x0-0xFF:2>
108 BackDoorK0 EQU 0xFF
109 BackDoorK1 EQU 0xFF
110 BackDoorK2 EQU 0xFF
111 BackDoorK3 EQU 0xFF
112 BackDoorK4 EQU 0xFF
113 BackDoorK5 EQU 0xFF
114 BackDoorK6 EQU 0xFF
115 BackDoorK7 EQU 0xFF
116 ; </h>
117 ; <h> Program flash protection bytes (FPROT)
118 ; <i> Each program flash region can be protected from program and erase operation by setting the associated PROT bit.
119 ; <i> Each bit protects a 1/32 region of the program flash memory.
120 ; <h> FPROT0
121 ; <i> Program flash protection bytes
122 ; <i> 1/32 - 8/32 region
123 ; <o.0> FPROT0.0
124 ; <o.1> FPROT0.1
125 ; <o.2> FPROT0.2
126 ; <o.3> FPROT0.3
127 ; <o.4> FPROT0.4
128 ; <o.5> FPROT0.5
129 ; <o.6> FPROT0.6
130 ; <o.7> FPROT0.7
131 nFPROT0 EQU 0x00
132 FPROT0 EQU nFPROT0:EOR:0xFF
133 ; </h>
134 ; <h> FPROT1
135 ; <i> Program Flash Region Protect Register 1
136 ; <i> 9/32 - 16/32 region
137 ; <o.0> FPROT1.0
138 ; <o.1> FPROT1.1
139 ; <o.2> FPROT1.2
140 ; <o.3> FPROT1.3
141 ; <o.4> FPROT1.4
142 ; <o.5> FPROT1.5
143 ; <o.6> FPROT1.6
144 ; <o.7> FPROT1.7
145 nFPROT1 EQU 0x00
146 FPROT1 EQU nFPROT1:EOR:0xFF
147 ; </h>
148 ; <h> FPROT2
149 ; <i> Program Flash Region Protect Register 2
150 ; <i> 17/32 - 24/32 region
151 ; <o.0> FPROT2.0
152 ; <o.1> FPROT2.1
153 ; <o.2> FPROT2.2
154 ; <o.3> FPROT2.3
155 ; <o.4> FPROT2.4
156 ; <o.5> FPROT2.5
157 ; <o.6> FPROT2.6
158 ; <o.7> FPROT2.7
159 nFPROT2 EQU 0x00
160 FPROT2 EQU nFPROT2:EOR:0xFF
161 ; </h>
162 ; <h> FPROT3
163 ; <i> Program Flash Region Protect Register 3
164 ; <i> 25/32 - 32/32 region
165 ; <o.0> FPROT3.0
166 ; <o.1> FPROT3.1
167 ; <o.2> FPROT3.2
168 ; <o.3> FPROT3.3
169 ; <o.4> FPROT3.4
170 ; <o.5> FPROT3.5
171 ; <o.6> FPROT3.6
172 ; <o.7> FPROT3.7
173 nFPROT3 EQU 0x00
174 FPROT3 EQU nFPROT3:EOR:0xFF
175 ; </h>
176 ; </h>
177 ; <h> Data flash protection byte (FDPROT)
178 ; <i> Each bit protects a 1/8 region of the data flash memory.
179 ; <i> (Program flash only devices: Reserved)
180 ; <o.0> FDPROT.0
181 ; <o.1> FDPROT.1
182 ; <o.2> FDPROT.2
183 ; <o.3> FDPROT.3
184 ; <o.4> FDPROT.4
185 ; <o.5> FDPROT.5
186 ; <o.6> FDPROT.6
187 ; <o.7> FDPROT.7
188 nFDPROT EQU 0x00
189 FDPROT EQU nFDPROT:EOR:0xFF
190 ; </h>
191 ; <h> EEPROM protection byte (FEPROT)
192 ; <i> FlexNVM devices: Each bit protects a 1/8 region of the EEPROM.
193 ; <i> (Program flash only devices: Reserved)
194 ; <o.0> FEPROT.0
195 ; <o.1> FEPROT.1
196 ; <o.2> FEPROT.2
197 ; <o.3> FEPROT.3
198 ; <o.4> FEPROT.4
199 ; <o.5> FEPROT.5
200 ; <o.6> FEPROT.6
201 ; <o.7> FEPROT.7
202 nFEPROT EQU 0x00
203 FEPROT EQU nFEPROT:EOR:0xFF
204 ; </h>
205 ; <h> Flash nonvolatile option byte (FOPT)
206 ; <i> Allows the user to customize the operation of the MCU at boot time.
207 ; <o.0> LPBOOT
208 ; <0=> Low-power boot
209 ; <1=> normal boot
210 ; <o.1> EZPORT_DIS
211 ; <0=> EzPort operation is enabled
212 ; <1=> EzPort operation is disabled
213 FOPT EQU 0xFF
214 ; </h>
215 ; <h> Flash security byte (FSEC)
216 ; <i> WARNING: If SEC field is configured as "MCU security status is secure" and MEEN field is configured as "Mass erase is disabled",
217 ; <i> MCU's security status cannot be set back to unsecure state since Mass erase via the debugger is blocked !!!
218 ; <o.0..1> SEC
219 ; <2=> MCU security status is unsecure
220 ; <3=> MCU security status is secure
221 ; <i> Flash Security
222 ; <i> This bits define the security state of the MCU.
223 ; <o.2..3> FSLACC
224 ; <2=> Freescale factory access denied
225 ; <3=> Freescale factory access granted
226 ; <i> Freescale Failure Analysis Access Code
227 ; <i> This bits define the security state of the MCU.
228 ; <o.4..5> MEEN
229 ; <2=> Mass erase is disabled
230 ; <3=> Mass erase is enabled
231 ; <i> Mass Erase Enable Bits
232 ; <i> Enables and disables mass erase capability of the FTFL module
233 ; <o.6..7> KEYEN
234 ; <2=> Backdoor key access enabled
235 ; <3=> Backdoor key access disabled
236 ; <i> Backdoor key Security Enable
237 ; <i> These bits enable and disable backdoor key access to the FTFL module.
238 FSEC EQU 0xFE
239 ; </h>
240 ; </h>
241 IF :LNOT::DEF:RAM_TARGET
242 AREA |.ARM.__at_0x400|, CODE, READONLY
243 DCB BackDoorK0, BackDoorK1, BackDoorK2, BackDoorK3
244 DCB BackDoorK4, BackDoorK5, BackDoorK6, BackDoorK7
245 DCB FPROT0, FPROT1, FPROT2, FPROT3
246 DCB FSEC, FOPT, FEPROT, FDPROT
247 ENDIF
248
249 AREA |.text|, CODE, READONLY
250
251
252 ; Reset Handler
253
254 Reset_Handler PROC
255 EXPORT Reset_Handler [WEAK]
256 IMPORT SystemInit
257 IMPORT __main
258 LDR R0, =SystemInit
259 BLX R0
260 LDR R0, =__main
261 BX R0
262 ENDP
263
264
265 ; Dummy Exception Handlers (infinite loops which can be modified)
266
267 NMI_Handler PROC
268 EXPORT NMI_Handler [WEAK]
269 B .
270 ENDP
271 HardFault_Handler\
272 PROC
273 EXPORT HardFault_Handler [WEAK]
274 B .
275 ENDP
276 MemManage_Handler\
277 PROC
278 EXPORT MemManage_Handler [WEAK]
279 B .
280 ENDP
281 BusFault_Handler\
282 PROC
283 EXPORT BusFault_Handler [WEAK]
284 B .
285 ENDP
286 UsageFault_Handler\
287 PROC
288 EXPORT UsageFault_Handler [WEAK]
289 B .
290 ENDP
291 SVC_Handler PROC
292 EXPORT SVC_Handler [WEAK]
293 B .
294 ENDP
295 DebugMon_Handler\
296 PROC
297 EXPORT DebugMon_Handler [WEAK]
298 B .
299 ENDP
300 PendSV_Handler PROC
301 EXPORT PendSV_Handler [WEAK]
302 B .
303 ENDP
304 SysTick_Handler PROC
305 EXPORT SysTick_Handler [WEAK]
306 B .
307 ENDP
308
309 Default_Handler PROC
310 EXPORT DMA0_IRQHandler [WEAK]
311 EXPORT DMA1_IRQHandler [WEAK]
312 EXPORT DMA2_IRQHandler [WEAK]
313 EXPORT DMA3_IRQHandler [WEAK]
314 EXPORT DMA_Error_IRQHandler [WEAK]
315 EXPORT Reserved21_IRQHandler [WEAK]
316 EXPORT FTFL_IRQHandler [WEAK]
317 EXPORT Read_Collision_IRQHandler [WEAK]
318 EXPORT LVD_LVW_IRQHandler [WEAK]
319 EXPORT LLW_IRQHandler [WEAK]
320 EXPORT Watchdog_IRQHandler [WEAK]
321 EXPORT I2C0_IRQHandler [WEAK]
322 EXPORT SPI0_IRQHandler [WEAK]
323 EXPORT I2S0_Tx_IRQHandler [WEAK]
324 EXPORT I2S0_Rx_IRQHandler [WEAK]
325 EXPORT UART0_LON_IRQHandler [WEAK]
326 EXPORT UART0_RX_TX_IRQHandler [WEAK]
327 EXPORT UART0_ERR_IRQHandler [WEAK]
328 EXPORT UART1_RX_TX_IRQHandler [WEAK]
329 EXPORT UART1_ERR_IRQHandler [WEAK]
330 EXPORT UART2_RX_TX_IRQHandler [WEAK]
331 EXPORT UART2_ERR_IRQHandler [WEAK]
332 EXPORT ADC0_IRQHandler [WEAK]
333 EXPORT CMP0_IRQHandler [WEAK]
334 EXPORT CMP1_IRQHandler [WEAK]
335 EXPORT FTM0_IRQHandler [WEAK]
336 EXPORT FTM1_IRQHandler [WEAK]
337 EXPORT CMT_IRQHandler [WEAK]
338 EXPORT RTC_IRQHandler [WEAK]
339 EXPORT RTC_Seconds_IRQHandler [WEAK]
340 EXPORT PIT0_IRQHandler [WEAK]
341 EXPORT PIT1_IRQHandler [WEAK]
342 EXPORT PIT2_IRQHandler [WEAK]
343 EXPORT PIT3_IRQHandler [WEAK]
344 EXPORT PDB0_IRQHandler [WEAK]
345 EXPORT USB0_IRQHandler [WEAK]
346 EXPORT USBDCD_IRQHandler [WEAK]
347 EXPORT TSI0_IRQHandler [WEAK]
348 EXPORT MCG_IRQHandler [WEAK]
349 EXPORT LPTimer_IRQHandler [WEAK]
350 EXPORT PORTA_IRQHandler [WEAK]
351 EXPORT PORTB_IRQHandler [WEAK]
352 EXPORT PORTC_IRQHandler [WEAK]
353 EXPORT PORTD_IRQHandler [WEAK]
354 EXPORT PORTE_IRQHandler [WEAK]
355 EXPORT SWI_IRQHandler [WEAK]
356 EXPORT DefaultISR [WEAK]
357
358 DMA0_IRQHandler
359 DMA1_IRQHandler
360 DMA2_IRQHandler
361 DMA3_IRQHandler
362 DMA_Error_IRQHandler
363 Reserved21_IRQHandler
364 FTFL_IRQHandler
365 Read_Collision_IRQHandler
366 LVD_LVW_IRQHandler
367 LLW_IRQHandler
368 Watchdog_IRQHandler
369 I2C0_IRQHandler
370 SPI0_IRQHandler
371 I2S0_Tx_IRQHandler
372 I2S0_Rx_IRQHandler
373 UART0_LON_IRQHandler
374 UART0_RX_TX_IRQHandler
375 UART0_ERR_IRQHandler
376 UART1_RX_TX_IRQHandler
377 UART1_ERR_IRQHandler
378 UART2_RX_TX_IRQHandler
379 UART2_ERR_IRQHandler
380 ADC0_IRQHandler
381 CMP0_IRQHandler
382 CMP1_IRQHandler
383 FTM0_IRQHandler
384 FTM1_IRQHandler
385 CMT_IRQHandler
386 RTC_IRQHandler
387 RTC_Seconds_IRQHandler
388 PIT0_IRQHandler
389 PIT1_IRQHandler
390 PIT2_IRQHandler
391 PIT3_IRQHandler
392 PDB0_IRQHandler
393 USB0_IRQHandler
394 USBDCD_IRQHandler
395 TSI0_IRQHandler
396 MCG_IRQHandler
397 LPTimer_IRQHandler
398 PORTA_IRQHandler
399 PORTB_IRQHandler
400 PORTC_IRQHandler
401 PORTD_IRQHandler
402 PORTE_IRQHandler
403 SWI_IRQHandler
404 DefaultISR
405
406 B .
407
408 ENDP
409
410
411 ALIGN
412 END
Imprint / Impressum