]> git.gir.st - tmk_keyboard.git/blob - tmk_core/tool/mbed/mbed-sdk/libraries/mbed/targets/cmsis/TARGET_Freescale/TARGET_KLXX/TARGET_KL25Z/TOOLCHAIN_ARM_STD/startup_MKL25Z4.s
Merge commit '1fe4406f374291ab2e86e95a97341fd9c475fcb8'
[tmk_keyboard.git] / tmk_core / tool / mbed / mbed-sdk / libraries / mbed / targets / cmsis / TARGET_Freescale / TARGET_KLXX / TARGET_KL25Z / TOOLCHAIN_ARM_STD / startup_MKL25Z4.s
1 ;/*****************************************************************************
2 ; * @file: startup_MKL25Z4.s
3 ; * @purpose: CMSIS Cortex-M0plus Core Device Startup File for the
4 ; * MKL25Z4
5 ; * @version: 1.1
6 ; * @date: 2012-6-21
7 ; *
8 ; * Copyright: 1997 - 2012 Freescale Semiconductor, Inc. All Rights Reserved.
9 ;*
10 ; *------- <<< Use Configuration Wizard in Context Menu >>> ------------------
11 ; *
12 ; *****************************************************************************/
13
14
15 __initial_sp EQU 0x20003000 ; 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 0 ; Reserved
33 DCD 0 ; Reserved
34 DCD 0 ; Reserved
35 DCD 0 ; Reserved
36 DCD 0 ; Reserved
37 DCD 0 ; Reserved
38 DCD 0 ; Reserved
39 DCD SVC_Handler ; SVCall Handler
40 DCD 0 ; Reserved
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 Reserved20_IRQHandler ; Reserved interrupt 20
51 DCD FTFA_IRQHandler ; FTFA interrupt
52 DCD LVD_LVW_IRQHandler ; Low Voltage Detect, Low Voltage Warning
53 DCD LLW_IRQHandler ; Low Leakage Wakeup
54 DCD I2C0_IRQHandler ; I2C0 interrupt
55 DCD I2C1_IRQHandler ; I2C0 interrupt 25
56 DCD SPI0_IRQHandler ; SPI0 interrupt
57 DCD SPI1_IRQHandler ; SPI1 interrupt
58 DCD UART0_IRQHandler ; UART0 status/error interrupt
59 DCD UART1_IRQHandler ; UART1 status/error interrupt
60 DCD UART2_IRQHandler ; UART2 status/error interrupt
61 DCD ADC0_IRQHandler ; ADC0 interrupt
62 DCD CMP0_IRQHandler ; CMP0 interrupt
63 DCD TPM0_IRQHandler ; TPM0 fault, overflow and channels interrupt
64 DCD TPM1_IRQHandler ; TPM1 fault, overflow and channels interrupt
65 DCD TPM2_IRQHandler ; TPM2 fault, overflow and channels interrupt
66 DCD RTC_IRQHandler ; RTC interrupt
67 DCD RTC_Seconds_IRQHandler ; RTC seconds interrupt
68 DCD PIT_IRQHandler ; PIT timer interrupt
69 DCD Reserved39_IRQHandler ; Reserved interrupt 39
70 DCD USB0_IRQHandler ; USB0 interrupt
71 DCD DAC0_IRQHandler ; DAC interrupt
72 DCD TSI0_IRQHandler ; TSI0 interrupt
73 DCD MCG_IRQHandler ; MCG interrupt
74 DCD LPTimer_IRQHandler ; LPTimer interrupt
75 DCD Reserved45_IRQHandler ; Reserved interrupt 45
76 DCD PORTA_IRQHandler ; Port A interrupt
77 DCD PORTD_IRQHandler ; Port D interrupt
78 __Vectors_End
79
80 __Vectors_Size EQU __Vectors_End - __Vectors
81
82 ; <h> Flash Configuration
83 ; <i> 16-byte flash configuration field that stores default protection settings (loaded on reset)
84 ; <i> and security information that allows the MCU to restrict acces to the FTFL module.
85 ; <h> Backdoor Comparison Key
86 ; <o0> Backdoor Key 0 <0x0-0xFF:2>
87 ; <o1> Backdoor Key 1 <0x0-0xFF:2>
88 ; <o2> Backdoor Key 2 <0x0-0xFF:2>
89 ; <o3> Backdoor Key 3 <0x0-0xFF:2>
90 ; <o4> Backdoor Key 4 <0x0-0xFF:2>
91 ; <o5> Backdoor Key 5 <0x0-0xFF:2>
92 ; <o6> Backdoor Key 6 <0x0-0xFF:2>
93 ; <o7> Backdoor Key 7 <0x0-0xFF:2>
94 BackDoorK0 EQU 0xFF
95 BackDoorK1 EQU 0xFF
96 BackDoorK2 EQU 0xFF
97 BackDoorK3 EQU 0xFF
98 BackDoorK4 EQU 0xFF
99 BackDoorK5 EQU 0xFF
100 BackDoorK6 EQU 0xFF
101 BackDoorK7 EQU 0xFF
102 ; </h>
103 ; <h> Program flash protection bytes (FPROT)
104 ; <i> Each program flash region can be protected from program and erase operation by setting the associated PROT bit.
105 ; <i> Each bit protects a 1/32 region of the program flash memory.
106 ; <h> FPROT0
107 ; <i> Program flash protection bytes
108 ; <i> 1/32 - 8/32 region
109 ; <o.0> FPROT0.0
110 ; <o.1> FPROT0.1
111 ; <o.2> FPROT0.2
112 ; <o.3> FPROT0.3
113 ; <o.4> FPROT0.4
114 ; <o.5> FPROT0.5
115 ; <o.6> FPROT0.6
116 ; <o.7> FPROT0.7
117 nFPROT0 EQU 0x00
118 FPROT0 EQU nFPROT0:EOR:0xFF
119 ; </h>
120 ; <h> FPROT1
121 ; <i> Program Flash Region Protect Register 1
122 ; <i> 9/32 - 16/32 region
123 ; <o.0> FPROT1.0
124 ; <o.1> FPROT1.1
125 ; <o.2> FPROT1.2
126 ; <o.3> FPROT1.3
127 ; <o.4> FPROT1.4
128 ; <o.5> FPROT1.5
129 ; <o.6> FPROT1.6
130 ; <o.7> FPROT1.7
131 nFPROT1 EQU 0x00
132 FPROT1 EQU nFPROT1:EOR:0xFF
133 ; </h>
134 ; <h> FPROT2
135 ; <i> Program Flash Region Protect Register 2
136 ; <i> 17/32 - 24/32 region
137 ; <o.0> FPROT2.0
138 ; <o.1> FPROT2.1
139 ; <o.2> FPROT2.2
140 ; <o.3> FPROT2.3
141 ; <o.4> FPROT2.4
142 ; <o.5> FPROT2.5
143 ; <o.6> FPROT2.6
144 ; <o.7> FPROT2.7
145 nFPROT2 EQU 0x00
146 FPROT2 EQU nFPROT2:EOR:0xFF
147 ; </h>
148 ; <h> FPROT3
149 ; <i> Program Flash Region Protect Register 3
150 ; <i> 25/32 - 32/32 region
151 ; <o.0> FPROT3.0
152 ; <o.1> FPROT3.1
153 ; <o.2> FPROT3.2
154 ; <o.3> FPROT3.3
155 ; <o.4> FPROT3.4
156 ; <o.5> FPROT3.5
157 ; <o.6> FPROT3.6
158 ; <o.7> FPROT3.7
159 nFPROT3 EQU 0x00
160 FPROT3 EQU nFPROT3:EOR:0xFF
161 ; </h>
162 ; </h>
163 ; </h>
164 ; <h> Flash nonvolatile option byte (FOPT)
165 ; <i> Allows the user to customize the operation of the MCU at boot time.
166 ; <o.0> LPBOOT0
167 ; <0=> Core and system clock divider (OUTDIV1) is 0x7 (divide by 8) or 0x3 (divide by 4)
168 ; <1=> Core and system clock divider (OUTDIV1) is 0x1 (divide by 2) or 0x0 (divide by 1)
169 ; <o.4> LPBOOT1
170 ; <0=> Core and system clock divider (OUTDIV1) is 0x7 (divide by 8) or 0x1 (divide by 2)
171 ; <1=> Core and system clock divider (OUTDIV1) is 0x3 (divide by 4) or 0x0 (divide by 1)
172 ; <o.2> NMI_DIS
173 ; <0=> NMI interrupts are always blocked
174 ; <1=> NMI pin/interrupts reset default to enabled
175 ; <o.3> RESET_PIN_CFG
176 ; <0=> RESET pin is disabled following a POR and cannot be enabled as RESET function
177 ; <1=> RESET pin is dedicated
178 ; <o.3> FAST_INIT
179 ; <0=> Slower initialization
180 ; <1=> Fast Initialization
181 FOPT EQU 0xFF
182 ; </h>
183 ; <h> Flash security byte (FSEC)
184 ; <i> WARNING: If SEC field is configured as "MCU security status is secure" and MEEN field is configured as "Mass erase is disabled",
185 ; <i> MCU's security status cannot be set back to unsecure state since Mass erase via the debugger is blocked !!!
186 ; <o.0..1> SEC
187 ; <2=> MCU security status is unsecure
188 ; <3=> MCU security status is secure
189 ; <i> Flash Security
190 ; <i> This bits define the security state of the MCU.
191 ; <o.2..3> FSLACC
192 ; <2=> Freescale factory access denied
193 ; <3=> Freescale factory access granted
194 ; <i> Freescale Failure Analysis Access Code
195 ; <i> This bits define the security state of the MCU.
196 ; <o.4..5> MEEN
197 ; <2=> Mass erase is disabled
198 ; <3=> Mass erase is enabled
199 ; <i> Mass Erase Enable Bits
200 ; <i> Enables and disables mass erase capability of the FTFL module
201 ; <o.6..7> KEYEN
202 ; <2=> Backdoor key access enabled
203 ; <3=> Backdoor key access disabled
204 ; <i> Backdoor key Security Enable
205 ; <i> These bits enable and disable backdoor key access to the FTFL module.
206 FSEC EQU 0xFE
207 ; </h>
208
209 IF :LNOT::DEF:RAM_TARGET
210 AREA |.ARM.__at_0x400|, CODE, READONLY
211 DCB BackDoorK0, BackDoorK1, BackDoorK2, BackDoorK3
212 DCB BackDoorK4, BackDoorK5, BackDoorK6, BackDoorK7
213 DCB FPROT0, FPROT1, FPROT2, FPROT3
214 DCB FSEC, FOPT, 0xFF, 0xFF
215 ENDIF
216
217 AREA |.text|, CODE, READONLY
218
219
220 ; Reset Handler
221
222 Reset_Handler PROC
223 EXPORT Reset_Handler [WEAK]
224 IMPORT SystemInit
225 IMPORT __main
226 LDR R0, =SystemInit
227 BLX R0
228 LDR R0, =__main
229 BX R0
230 ENDP
231
232
233 ; Dummy Exception Handlers (infinite loops which can be modified)
234
235 NMI_Handler PROC
236 EXPORT NMI_Handler [WEAK]
237 B .
238 ENDP
239 HardFault_Handler\
240 PROC
241 EXPORT HardFault_Handler [WEAK]
242 B .
243 ENDP
244 SVC_Handler PROC
245 EXPORT SVC_Handler [WEAK]
246 B .
247 ENDP
248 PendSV_Handler PROC
249 EXPORT PendSV_Handler [WEAK]
250 B .
251 ENDP
252 SysTick_Handler PROC
253 EXPORT SysTick_Handler [WEAK]
254 B .
255 ENDP
256
257 Default_Handler PROC
258 EXPORT DMA0_IRQHandler [WEAK]
259 EXPORT DMA1_IRQHandler [WEAK]
260 EXPORT DMA2_IRQHandler [WEAK]
261 EXPORT DMA3_IRQHandler [WEAK]
262 EXPORT Reserved20_IRQHandler [WEAK]
263 EXPORT FTFA_IRQHandler [WEAK]
264 EXPORT LVD_LVW_IRQHandler [WEAK]
265 EXPORT LLW_IRQHandler [WEAK]
266 EXPORT I2C0_IRQHandler [WEAK]
267 EXPORT I2C1_IRQHandler [WEAK]
268 EXPORT SPI0_IRQHandler [WEAK]
269 EXPORT SPI1_IRQHandler [WEAK]
270 EXPORT UART0_IRQHandler [WEAK]
271 EXPORT UART1_IRQHandler [WEAK]
272 EXPORT UART2_IRQHandler [WEAK]
273 EXPORT ADC0_IRQHandler [WEAK]
274 EXPORT CMP0_IRQHandler [WEAK]
275 EXPORT TPM0_IRQHandler [WEAK]
276 EXPORT TPM1_IRQHandler [WEAK]
277 EXPORT TPM2_IRQHandler [WEAK]
278 EXPORT RTC_IRQHandler [WEAK]
279 EXPORT RTC_Seconds_IRQHandler [WEAK]
280 EXPORT PIT_IRQHandler [WEAK]
281 EXPORT Reserved39_IRQHandler [WEAK]
282 EXPORT USB0_IRQHandler [WEAK]
283 EXPORT DAC0_IRQHandler [WEAK]
284 EXPORT TSI0_IRQHandler [WEAK]
285 EXPORT MCG_IRQHandler [WEAK]
286 EXPORT LPTimer_IRQHandler [WEAK]
287 EXPORT Reserved45_IRQHandler [WEAK]
288 EXPORT PORTA_IRQHandler [WEAK]
289 EXPORT PORTD_IRQHandler [WEAK]
290 EXPORT DefaultISR [WEAK]
291
292 DMA0_IRQHandler
293 DMA1_IRQHandler
294 DMA2_IRQHandler
295 DMA3_IRQHandler
296 Reserved20_IRQHandler
297 FTFA_IRQHandler
298 LVD_LVW_IRQHandler
299 LLW_IRQHandler
300 I2C0_IRQHandler
301 I2C1_IRQHandler
302 SPI0_IRQHandler
303 SPI1_IRQHandler
304 UART0_IRQHandler
305 UART1_IRQHandler
306 UART2_IRQHandler
307 ADC0_IRQHandler
308 CMP0_IRQHandler
309 TPM0_IRQHandler
310 TPM1_IRQHandler
311 TPM2_IRQHandler
312 RTC_IRQHandler
313 RTC_Seconds_IRQHandler
314 PIT_IRQHandler
315 Reserved39_IRQHandler
316 USB0_IRQHandler
317 DAC0_IRQHandler
318 TSI0_IRQHandler
319 MCG_IRQHandler
320 LPTimer_IRQHandler
321 Reserved45_IRQHandler
322 PORTA_IRQHandler
323 PORTD_IRQHandler
324 DefaultISR
325
326 B .
327
328 ENDP
329
330
331 ALIGN
332 END
Imprint / Impressum