]> git.donarmstrong.com Git - qmk_firmware.git/blob - tool/mbed/mbed-sdk/libraries/mbed/targets/cmsis/TARGET_NXP/TARGET_LPC43XX/TOOLCHAIN_ARM_STD/TARGET_LPC4330/startup_LPC43xx.s
Squashed 'tmk_core/' changes from 7967731..b9e0ea0
[qmk_firmware.git] / tool / mbed / mbed-sdk / libraries / mbed / targets / cmsis / TARGET_NXP / TARGET_LPC43XX / TOOLCHAIN_ARM_STD / TARGET_LPC4330 / startup_LPC43xx.s
1 ;/***********************************************************************
2 ; * @brief: LPC18xx/43xx M3/M4 startup code
3 ; *
4 ; * @note
5 ; * Copyright(C) NXP Semiconductors, 2012
6 ; * All rights reserved.
7 ; *
8 ; * @par
9 ; * Software that is described herein is for illustrative purposes only
10 ; * which provides customers with programming information regarding the
11 ; * LPC products.  This software is supplied "AS IS" without any warranties of
12 ; * any kind, and NXP Semiconductors and its licensor disclaim any and
13 ; * all warranties, express or implied, including all implied warranties of
14 ; * merchantability, fitness for a particular purpose and non-infringement of
15 ; * intellectual property rights.  NXP Semiconductors assumes no responsibility
16 ; * or liability for the use of the software, conveys no license or rights under any
17 ; * patent, copyright, mask work right, or any other intellectual property rights in
18 ; * or to any products. NXP Semiconductors reserves the right to make changes
19 ; * in the software without notification. NXP Semiconductors also makes no
20 ; * representation or warranty that such application will be suitable for the
21 ; * specified use without further testing or modification.
22 ; *
23 ; * @par
24 ; * Permission to use, copy, modify, and distribute this software and its
25 ; * documentation is hereby granted, under NXP Semiconductors' and its
26 ; * licensor's relevant copyrights in the software, without fee, provided that it
27 ; * is used in conjunction with NXP Semiconductors microcontrollers.  This
28 ; * copyright, permission, and disclaimer notice must appear in all copies of
29 ; * this code.
30 ; */
31
32 ; __initial_sp    EQU     0x10020000  ; Top of first RAM segment for LPC43XX (IRAM1)
33 __initial_sp    EQU     0x10092000  ; Top of first RAM segment for LPC43XX (IRAM2)
34
35                 PRESERVE8
36                 THUMB
37
38 ; Vector Table Mapped to Address 0 at Reset
39
40                 AREA    RESET, DATA, READONLY
41                 EXPORT  __Vectors
42
43 Sign_Value              EQU             0x5A5A5A5A
44
45 __Vectors       DCD     __initial_sp                    ; 0 Top of Stack
46                 DCD     Reset_Handler                   ; 1 Reset Handler
47                 DCD     NMI_Handler                     ; 2 NMI Handler
48                 DCD     HardFault_Handler               ; 3 Hard Fault Handler
49                 DCD     MemManage_Handler               ; 4 MPU Fault Handler
50                 DCD     BusFault_Handler                ; 5 Bus Fault Handler
51                 DCD     UsageFault_Handler              ; 6 Usage Fault Handler
52                 DCD     Sign_Value                      ; 7 Reserved
53                 DCD     UnHandled_Vector                ; 8 Reserved
54                 DCD     UnHandled_Vector                ; 9 Reserved
55                 DCD     UnHandled_Vector                ; 10 Reserved
56                 DCD     SVC_Handler                     ; 11 SVCall Handler
57                 DCD     DebugMon_Handler                ; 12 Debug Monitor Handler
58                 DCD     UnHandled_Vector                ; 13 Reserved
59                 DCD     PendSV_Handler                  ; 14 PendSV Handler
60                 DCD     SysTick_Handler                 ; 15 SysTick Handler
61
62                 ; External Interrupts
63                                 DCD             DAC_IRQHandler                          ; 16 D/A Converter
64                                 DCD             MX_CORE_IRQHandler                      ; 17 M0/M4 IRQ handler (LPC43XX ONLY)
65                                 DCD             DMA_IRQHandler                          ; 18 General Purpose DMA
66                                 DCD             UnHandled_Vector                        ; 19 Reserved
67                                 DCD             FLASHEEPROM_IRQHandler          ; 20 ORed flash bank A, flash bank B, EEPROM interrupts
68                                 DCD             ETH_IRQHandler                          ; 21 Ethernet
69                                 DCD             SDIO_IRQHandler                         ; 22 SD/MMC
70                                 DCD             LCD_IRQHandler                          ; 23 LCD
71                                 DCD             USB0_IRQHandler                         ; 24 USB0
72                                 DCD             USB1_IRQHandler                         ; 25 USB1
73                                 DCD             SCT_IRQHandler                          ; 26 State Configurable Timer
74                                 DCD             RIT_IRQHandler                          ; 27 Repetitive Interrupt Timer
75                                 DCD             TIMER0_IRQHandler                       ; 28 Timer0
76                                 DCD             TIMER1_IRQHandler                       ; 29 Timer1
77                                 DCD             TIMER2_IRQHandler                       ; 30 Timer2
78                                 DCD             TIMER3_IRQHandler                       ; 31 Timer3
79                                 DCD             MCPWM_IRQHandler                        ; 32 Motor Control PWM
80                                 DCD             ADC0_IRQHandler                         ; 33 A/D Converter 0
81                                 DCD             I2C0_IRQHandler                         ; 34 I2C0
82                                 DCD             I2C1_IRQHandler                         ; 35 I2C1
83                                 DCD             SPI_IRQHandler                          ; 36 SPI (LPC43XX ONLY)
84                                 DCD             ADC1_IRQHandler                         ; 37 A/D Converter 1
85                                 DCD             SSP0_IRQHandler                         ; 38 SSP0
86                                 DCD             SSP1_IRQHandler                         ; 39 SSP1
87                                 DCD             UART0_IRQHandler                        ; 40 UART0
88                                 DCD             UART1_IRQHandler                        ; 41 UART1
89                                 DCD             UART2_IRQHandler                        ; 42 UART2
90                                 DCD             UART3_IRQHandler                        ; 43 UART3
91                                 DCD             I2S0_IRQHandler                         ; 44 I2S0
92                                 DCD             I2S1_IRQHandler                         ; 45 I2S1
93                                 DCD             SPIFI_IRQHandler                        ; 46 SPI Flash Interface
94                                 DCD             SGPIO_IRQHandler                        ; 47 SGPIO (LPC43XX ONLY)
95                                 DCD             GPIO0_IRQHandler                        ; 48 GPIO0
96                                 DCD             GPIO1_IRQHandler                        ; 49 GPIO1
97                                 DCD             GPIO2_IRQHandler                        ; 50 GPIO2
98                                 DCD             GPIO3_IRQHandler                        ; 51 GPIO3
99                                 DCD             GPIO4_IRQHandler                        ; 52 GPIO4
100                                 DCD             GPIO5_IRQHandler                        ; 53 GPIO5
101                                 DCD             GPIO6_IRQHandler                        ; 54 GPIO6
102                                 DCD             GPIO7_IRQHandler                        ; 55 GPIO7
103                                 DCD             GINT0_IRQHandler                        ; 56 GINT0
104                                 DCD             GINT1_IRQHandler                        ; 57 GINT1
105                                 DCD             EVRT_IRQHandler                         ; 58 Event Router
106                                 DCD             CAN1_IRQHandler                         ; 59 C_CAN1
107                                 DCD             UnHandled_Vector                        ; 60 Reserved
108                                 DCD             VADC_IRQHandler                         ; 61 VADC
109                                 DCD             ATIMER_IRQHandler                       ; 62 ATIMER
110                                 DCD             RTC_IRQHandler                          ; 63 RTC
111                                 DCD             UnHandled_Vector                        ; 64 Reserved
112                                 DCD             WDT_IRQHandler                          ; 65 WDT
113                                 DCD             UnHandled_Vector                        ; 66 M0s
114                                 DCD             CAN0_IRQHandler                         ; 67 C_CAN0
115                                 DCD     QEI_IRQHandler                          ; 68 QEI
116
117
118 ;                IF      :LNOT::DEF:NO_CRP
119 ;                AREA    |.ARM.__at_0x02FC|, CODE, READONLY
120 ;CRP_Key         DCD     0xFFFFFFFF
121 ;                ENDIF
122
123                 AREA    |.text|, CODE, READONLY
124
125
126 ; Reset Handler
127
128 Reset_Handler   PROC
129                 EXPORT  Reset_Handler             [WEAK]
130                 IMPORT  SystemInit
131                 IMPORT  __main
132                 LDR     R0, =SystemInit
133                 BLX     R0
134                 LDR     R0, =__main
135                 BX      R0
136                 ENDP
137
138
139 ; Dummy Exception Handlers (infinite loops which can be modified)                
140
141 NMI_Handler     PROC
142                 EXPORT  NMI_Handler               [WEAK]
143                 B       .
144                 ENDP
145 HardFault_Handler\
146                 PROC
147                 EXPORT  HardFault_Handler         [WEAK]
148                 B       .
149                 ENDP
150 MemManage_Handler\
151                 PROC
152                 EXPORT  MemManage_Handler         [WEAK]
153                 B       .
154                 ENDP
155 BusFault_Handler\
156                 PROC
157                 EXPORT  BusFault_Handler          [WEAK]
158                 B       .
159                 ENDP
160 UsageFault_Handler\
161                 PROC
162                 EXPORT  UsageFault_Handler        [WEAK]
163                 B       .
164                 ENDP
165 SVC_Handler     PROC
166                 EXPORT  SVC_Handler               [WEAK]
167                 B       .
168                 ENDP
169 DebugMon_Handler\
170                 PROC
171                 EXPORT  DebugMon_Handler          [WEAK]
172                 B       .
173                 ENDP
174 PendSV_Handler  PROC
175                 EXPORT  PendSV_Handler            [WEAK]
176                 B       .
177                 ENDP
178 SysTick_Handler PROC
179                 EXPORT  SysTick_Handler           [WEAK]
180                 B       .
181                 ENDP
182 UnHandled_Vector        PROC
183                 EXPORT  UnHandled_Vector          [WEAK]
184                 B       .
185                 ENDP
186
187 Default_Handler PROC
188
189                 EXPORT DAC_IRQHandler           [WEAK]
190                 EXPORT MX_CORE_IRQHandler           [WEAK]
191                                 EXPORT DMA_IRQHandler               [WEAK]
192                 EXPORT FLASHEEPROM_IRQHandler   [WEAK]
193                                 EXPORT ETH_IRQHandler           [WEAK]
194                                 EXPORT SDIO_IRQHandler          [WEAK]
195                                 EXPORT LCD_IRQHandler           [WEAK]
196                                 EXPORT USB0_IRQHandler          [WEAK]
197                                 EXPORT USB1_IRQHandler          [WEAK]
198                                 EXPORT SCT_IRQHandler           [WEAK]
199                                 EXPORT RIT_IRQHandler           [WEAK]
200                                 EXPORT TIMER0_IRQHandler        [WEAK]
201                                 EXPORT TIMER1_IRQHandler        [WEAK]
202                                 EXPORT TIMER2_IRQHandler        [WEAK]
203                                 EXPORT TIMER3_IRQHandler        [WEAK]
204                                 EXPORT MCPWM_IRQHandler         [WEAK]
205                                 EXPORT ADC0_IRQHandler          [WEAK]
206                                 EXPORT I2C0_IRQHandler          [WEAK]
207                                 EXPORT I2C1_IRQHandler          [WEAK]
208                 EXPORT SPI_IRQHandler           [WEAK]
209                                 EXPORT ADC1_IRQHandler              [WEAK]
210                                 EXPORT SSP0_IRQHandler          [WEAK]
211                                 EXPORT SSP1_IRQHandler          [WEAK]
212                                 EXPORT UART0_IRQHandler         [WEAK]
213                                 EXPORT UART1_IRQHandler         [WEAK]
214                                 EXPORT UART2_IRQHandler         [WEAK]
215                                 EXPORT UART3_IRQHandler         [WEAK]
216                                 EXPORT I2S0_IRQHandler          [WEAK]
217                                 EXPORT I2S1_IRQHandler          [WEAK]
218                                 EXPORT SPIFI_IRQHandler         [WEAK]
219                                 EXPORT SGPIO_IRQHandler         [WEAK]
220                                 EXPORT GPIO0_IRQHandler         [WEAK]
221                                 EXPORT GPIO1_IRQHandler         [WEAK]
222                                 EXPORT GPIO2_IRQHandler         [WEAK]
223                                 EXPORT GPIO3_IRQHandler         [WEAK]
224                                 EXPORT GPIO4_IRQHandler         [WEAK]
225                                 EXPORT GPIO5_IRQHandler         [WEAK]
226                                 EXPORT GPIO6_IRQHandler         [WEAK]
227                                 EXPORT GPIO7_IRQHandler         [WEAK]
228                                 EXPORT GINT0_IRQHandler         [WEAK]
229                                 EXPORT GINT1_IRQHandler         [WEAK]
230                                 EXPORT EVRT_IRQHandler              [WEAK]
231                                 EXPORT CAN1_IRQHandler          [WEAK]
232                                 EXPORT VADC_IRQHandler          [WEAK]
233                                 EXPORT ATIMER_IRQHandler        [WEAK]
234                                 EXPORT RTC_IRQHandler           [WEAK]
235                                 EXPORT WDT_IRQHandler           [WEAK]
236                                 EXPORT CAN0_IRQHandler          [WEAK]
237                                 EXPORT QEI_IRQHandler           [WEAK]
238
239 DAC_IRQHandler
240 MX_CORE_IRQHandler
241 DMA_IRQHandler
242 FLASHEEPROM_IRQHandler
243 ETH_IRQHandler
244 SDIO_IRQHandler
245 LCD_IRQHandler
246 USB0_IRQHandler
247 USB1_IRQHandler
248 SCT_IRQHandler
249 RIT_IRQHandler
250 TIMER0_IRQHandler
251 TIMER1_IRQHandler
252 TIMER2_IRQHandler
253 TIMER3_IRQHandler
254 MCPWM_IRQHandler
255 ADC0_IRQHandler
256 I2C0_IRQHandler
257 I2C1_IRQHandler
258 SPI_IRQHandler
259 ADC1_IRQHandler
260 SSP0_IRQHandler
261 SSP1_IRQHandler
262 UART0_IRQHandler
263 UART1_IRQHandler
264 UART2_IRQHandler
265 UART3_IRQHandler
266 I2S0_IRQHandler
267 I2S1_IRQHandler
268 SPIFI_IRQHandler
269 SGPIO_IRQHandler
270 GPIO0_IRQHandler
271 GPIO1_IRQHandler
272 GPIO2_IRQHandler
273 GPIO3_IRQHandler
274 GPIO4_IRQHandler
275 GPIO5_IRQHandler
276 GPIO6_IRQHandler
277 GPIO7_IRQHandler
278 GINT0_IRQHandler
279 GINT1_IRQHandler
280 EVRT_IRQHandler
281 CAN1_IRQHandler
282 VADC_IRQHandler
283 ATIMER_IRQHandler
284 RTC_IRQHandler
285 WDT_IRQHandler
286 CAN0_IRQHandler
287 QEI_IRQHandler
288
289                 B       .
290
291                 ENDP
292                 
293                 ALIGN
294                 END