1 ;/**************************************************************************//**
\r
2 ; * @file startup_ARMCM33.s
\r
3 ; * @brief CMSIS Core Device Startup File for
\r
4 ; * ARMCM33 Device Series
\r
6 ; * @date 21. October 2016
\r
7 ; ******************************************************************************/
\r
9 ; * Copyright (c) 2009-2016 ARM Limited. All rights reserved.
\r
11 ; * SPDX-License-Identifier: Apache-2.0
\r
13 ; * Licensed under the Apache License, Version 2.0 (the License); you may
\r
14 ; * not use this file except in compliance with the License.
\r
15 ; * You may obtain a copy of the License at
\r
17 ; * www.apache.org/licenses/LICENSE-2.0
\r
19 ; * Unless required by applicable law or agreed to in writing, software
\r
20 ; * distributed under the License is distributed on an AS IS BASIS, WITHOUT
\r
21 ; * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
22 ; * See the License for the specific language governing permissions and
\r
23 ; * limitations under the License.
\r
27 ;//-------- <<< Use Configuration Wizard in Context Menu >>> ------------------
\r
31 ; <h> Stack Configuration
\r
32 ; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
\r
35 Stack_Size EQU 0x00000400
\r
37 AREA STACK, NOINIT, READWRITE, ALIGN=3
\r
38 Stack_Mem SPACE Stack_Size
\r
42 ; <h> Heap Configuration
\r
43 ; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
\r
46 Heap_Size EQU 0x00000C00
\r
48 AREA HEAP, NOINIT, READWRITE, ALIGN=3
\r
50 Heap_Mem SPACE Heap_Size
\r
58 ; Vector Table Mapped to Address 0 at Reset
\r
60 AREA RESET, DATA, READONLY
\r
62 EXPORT __Vectors_End
\r
63 EXPORT __Vectors_Size
\r
65 __Vectors DCD __initial_sp ; Top of Stack
\r
66 DCD Reset_Handler ; Reset Handler
\r
67 DCD NMI_Handler ; NMI Handler
\r
68 DCD HardFault_Handler ; Hard Fault Handler
\r
69 DCD MemManage_Handler ; MPU Fault Handler
\r
70 DCD BusFault_Handler ; Bus Fault Handler
\r
71 DCD UsageFault_Handler ; Usage Fault Handler
\r
72 DCD SecureFault_Handler ; Secure Fault Handler
\r
76 DCD SVC_Handler ; SVCall Handler
\r
77 DCD DebugMon_Handler ; Debug Monitor Handler
\r
79 DCD PendSV_Handler ; PendSV Handler
\r
80 DCD SysTick_Handler ; SysTick Handler
\r
82 ; External Interrupts
\r
83 DCD WDT_IRQHandler ; 0: Watchdog Timer
\r
84 DCD RTC_IRQHandler ; 1: Real Time Clock
\r
85 DCD TIM0_IRQHandler ; 2: Timer0 / Timer1
\r
86 DCD TIM2_IRQHandler ; 3: Timer2 / Timer3
\r
87 DCD MCIA_IRQHandler ; 4: MCIa
\r
88 DCD MCIB_IRQHandler ; 5: MCIb
\r
89 DCD UART0_IRQHandler ; 6: UART0 - DUT FPGA
\r
90 DCD UART1_IRQHandler ; 7: UART1 - DUT FPGA
\r
91 DCD UART2_IRQHandler ; 8: UART2 - DUT FPGA
\r
92 DCD UART4_IRQHandler ; 9: UART4 - not connected
\r
93 DCD AACI_IRQHandler ; 10: AACI / AC97
\r
94 DCD CLCD_IRQHandler ; 11: CLCD Combined Interrupt
\r
95 DCD ENET_IRQHandler ; 12: Ethernet
\r
96 DCD USBDC_IRQHandler ; 13: USB Device
\r
97 DCD USBHC_IRQHandler ; 14: USB Host Controller
\r
98 DCD CHLCD_IRQHandler ; 15: Character LCD
\r
99 DCD FLEXRAY_IRQHandler ; 16: Flexray
\r
100 DCD CAN_IRQHandler ; 17: CAN
\r
101 DCD LIN_IRQHandler ; 18: LIN
\r
102 DCD I2C_IRQHandler ; 19: I2C ADC/DAC
\r
103 DCD 0 ; 20: Reserved
\r
104 DCD 0 ; 21: Reserved
\r
105 DCD 0 ; 22: Reserved
\r
106 DCD 0 ; 23: Reserved
\r
107 DCD 0 ; 24: Reserved
\r
108 DCD 0 ; 25: Reserved
\r
109 DCD 0 ; 26: Reserved
\r
110 DCD 0 ; 27: Reserved
\r
111 DCD CPU_CLCD_IRQHandler ; 28: Reserved - CPU FPGA CLCD
\r
112 DCD 0 ; 29: Reserved - CPU FPGA
\r
113 DCD UART3_IRQHandler ; 30: UART3 - CPU FPGA
\r
114 DCD SPI_IRQHandler ; 31: SPI Touchscreen - CPU FPGA
\r
117 __Vectors_Size EQU __Vectors_End - __Vectors
\r
119 AREA |.text|, CODE, READONLY
\r
125 EXPORT Reset_Handler [WEAK]
\r
128 LDR R0, =SystemInit
\r
135 ; Dummy Exception Handlers (infinite loops which can be modified)
\r
138 EXPORT NMI_Handler [WEAK]
\r
143 EXPORT HardFault_Handler [WEAK]
\r
148 EXPORT MemManage_Handler [WEAK]
\r
153 EXPORT BusFault_Handler [WEAK]
\r
156 UsageFault_Handler\
\r
158 EXPORT UsageFault_Handler [WEAK]
\r
161 SecureFault_Handler\
\r
163 EXPORT SecureFault_Handler [WEAK]
\r
167 EXPORT SVC_Handler [WEAK]
\r
172 EXPORT DebugMon_Handler [WEAK]
\r
175 PendSV_Handler PROC
\r
176 EXPORT PendSV_Handler [WEAK]
\r
179 SysTick_Handler PROC
\r
180 EXPORT SysTick_Handler [WEAK]
\r
184 Default_Handler PROC
\r
186 EXPORT WDT_IRQHandler [WEAK]
\r
187 EXPORT RTC_IRQHandler [WEAK]
\r
188 EXPORT TIM0_IRQHandler [WEAK]
\r
189 EXPORT TIM2_IRQHandler [WEAK]
\r
190 EXPORT MCIA_IRQHandler [WEAK]
\r
191 EXPORT MCIB_IRQHandler [WEAK]
\r
192 EXPORT UART0_IRQHandler [WEAK]
\r
193 EXPORT UART1_IRQHandler [WEAK]
\r
194 EXPORT UART2_IRQHandler [WEAK]
\r
195 EXPORT UART3_IRQHandler [WEAK]
\r
196 EXPORT UART4_IRQHandler [WEAK]
\r
197 EXPORT AACI_IRQHandler [WEAK]
\r
198 EXPORT CLCD_IRQHandler [WEAK]
\r
199 EXPORT ENET_IRQHandler [WEAK]
\r
200 EXPORT USBDC_IRQHandler [WEAK]
\r
201 EXPORT USBHC_IRQHandler [WEAK]
\r
202 EXPORT CHLCD_IRQHandler [WEAK]
\r
203 EXPORT FLEXRAY_IRQHandler [WEAK]
\r
204 EXPORT CAN_IRQHandler [WEAK]
\r
205 EXPORT LIN_IRQHandler [WEAK]
\r
206 EXPORT I2C_IRQHandler [WEAK]
\r
207 EXPORT CPU_CLCD_IRQHandler [WEAK]
\r
208 EXPORT SPI_IRQHandler [WEAK]
\r
231 CPU_CLCD_IRQHandler
\r
241 ; User Initial Stack & Heap
\r
245 EXPORT __initial_sp
\r
247 EXPORT __heap_limit
\r
251 IMPORT __use_two_region_memory
\r
252 EXPORT __user_initial_stackheap
\r
254 __user_initial_stackheap PROC
\r
256 LDR R1, =(Stack_Mem + Stack_Size)
\r
257 LDR R2, = (Heap_Mem + Heap_Size)
\r
258 LDR R3, = Stack_Mem
\r