1;* File Name : Startup_ACM32F4.s 2;* Version : V1.0.0 3;* Date : 2020 4;* Description : ACM32F4 Devices vector table for MDK-ARM toolchain. 5;* This module performs: 6;* - Set the initial SP 7;* - Set the initial PC == Reset_Handler 8;* - Set the vector table entries with the exceptions ISR address 9;* - Configure the clock system 10;* - Branches to __main in the C library (which eventually 11;* calls main()). 12;* After Reset the Cortex-M33 processor is in Thread mode, 13;* priority is Privileged, and the Stack is set to Main. 14;******************************************************************************** 15;* @attention 16;* 17;* All rights reserved. 18;******************************************************************************* 19 20Stack_Size EQU 0x00000800 21Heap_Size EQU 0x00000000 22 23 AREA STACK, NOINIT, READWRITE, ALIGN=3 24Stack_Mem SPACE Stack_Size 25__initial_sp 26 27 AREA HEAP, NOINIT, READWRITE, ALIGN=3 28__heap_base 29Heap_Mem SPACE Heap_Size 30__heap_limit 31 32 PRESERVE8 33 THUMB 34 35; Vector Table Mapped to Address 0 at Reset 36 37 AREA RESET, DATA, READONLY 38 EXPORT __Vectors 39 40__Vectors 41 DCD __initial_sp ; Top of Stack 42 DCD Reset_Handler ; Reset Handler 43 DCD NMI_Handler ; NMI Handler 44 DCD HardFault_Handler ; Hard Fault Handler 45 DCD MemManage_Handler ; MPU Fault Handler 46 DCD BusFault_Handler ; Bus Fault Handler 47 DCD UsageFault_Handler ; Usage Fault Handler 48 DCD 0 ; Reserved 49 DCD 0 ; Reserved 50 DCD 0 ; Reserved 51 DCD 0 ; Reserved 52 DCD SVC_Handler ; SVCall Handler 53 DCD DebugMon_Handler ; Debug Monitor Handler 54 DCD 0 ; Reserved 55 DCD PendSV_Handler ; PendSV Handler 56 DCD SysTick_Handler ; SysTick Handler 57 58 ; External Interrupts 59 DCD WDT_IRQHandler ; 0: WDT_IRQHandler 60 DCD RTC_IRQHandler ; 1: RTC_IRQHandler 61 DCD EFC_IRQHandler ; 2: EFC_IRQHandler 62 DCD GPIOAB_IRQHandler ; 3: GPIOAB_IRQHandler 63 DCD GPIOCD_IRQHandler ; 4: GPIOCD_IRQHandler 64 DCD EXTI_IRQHandler ; 5: EXTI_IRQHandler 65 DCD SRAM_PARITY_IRQHandler ; 6: SRAM_PARITY_IRQHandler 66 DCD CLKRDY_IRQHandler ; 7: CLKRDY_IRQHandler 67 DCD UART4_IRQHandler ; 8: UART4_IRQHandler 68 DCD DMA_IRQHandler ; 9: DMA_IRQHandler 69 DCD UART3_IRQHandler ; 10: UART3_IRQHandler 70 DCD RSV_IRQHandler ; 11: RSV 71 DCD ADC_IRQHandler ; 12: ADC_IRQHandler 72 DCD TIM1_BRK_UP_TRG_COM_IRQHandler ; 13: TIM1_BRK_UP_TRG_COM_IRQHandler 73 DCD TIM1_CC_IRQHandler ; 14: TIM1_CC_IRQHandler 74 DCD TIM2_IRQHandler ; 15: TIM2_IRQHandler 75 DCD TIM3_IRQHandler ; 16: TIM3_IRQHandler 76 DCD TIM6_IRQHandler ; 17: TIM6_IRQHandler 77 DCD TIM7_IRQHandler ; 18: TIM7_IRQHandler 78 DCD TIM14_IRQHandler ; 19: TIM14_IRQHandler 79 DCD TIM15_IRQHandler ; 20: TIM15_IRQHandler 80 DCD TIM16_IRQHandler ; 21: TIM16_IRQHandler 81 DCD TIM17_IRQHandler ; 22: TIM17_IRQHandler 82 DCD I2C1_IRQHandler ; 23: I2C1_IRQHandler 83 DCD I2C2_IRQHandler ; 24: I2C2_IRQHandler 84 DCD SPI1_IRQHandler ; 25: SPI1_IRQHandler 85 DCD SPI2_IRQHandler ; 26: SPI2_IRQHandler 86 DCD UART1_IRQHandler ; 27: UART1_IRQHandler 87 DCD UART2_IRQHandler ; 28: UART2_IRQHandler 88 DCD LPUART_IRQHandler ; 29: LPUART_IRQHandler 89 DCD SPI3_IRQHandler ; 30: SPI3_IRQHandler 90 DCD AES_IRQHandler ; 31: AES_IRQHandler 91 DCD USB_IRQHandler ; 32: USB_IRQHandler 92 DCD DAC_IRQHandler ; 33: DAC_IRQHandler 93 DCD I2S_IRQHandler ; 34: I2S_IRQHandler 94 DCD GPIOEF_IRQHandler ; 35: GPIOEF_IRQHandler 95 DCD CAN1_IRQHandler ; 36: CAN1_IRQHandler 96 DCD CAN2_IRQHandler ; 37: CAN2_IRQHandler 97 DCD FPU_IRQHandler ; 38: FPU_IRQHandler 98 DCD TIM4_IRQHandler ; 39: TIM4_IRQHandler 99 DCD SPI4_IRQHandler ; 40: SPI4_IRQHandler 100 AREA |.text|, CODE, READONLY 101 102Reset_Handler PROC 103 EXPORT Reset_Handler [WEAK] 104 IMPORT System_Core_Config 105 IMPORT __main 106 LDR R0, =System_Core_Config 107 BLX R0 108 LDR R0, =__main 109 BX R0 110 ENDP 111 112 113NMI_Handler PROC 114 EXPORT NMI_Handler [WEAK] 115 B . 116 ENDP 117HardFault_Handler\ 118 PROC 119 EXPORT HardFault_Handler [WEAK] 120 B . 121 ENDP 122MemManage_Handler\ 123 PROC 124 EXPORT MemManage_Handler [WEAK] 125 B . 126 ENDP 127BusFault_Handler\ 128 PROC 129 EXPORT BusFault_Handler [WEAK] 130 B . 131 ENDP 132UsageFault_Handler\ 133 PROC 134 EXPORT UsageFault_Handler [WEAK] 135 B . 136 ENDP 137SVC_Handler PROC 138 EXPORT SVC_Handler [WEAK] 139 B . 140 ENDP 141DebugMon_Handler\ 142 PROC 143 EXPORT DebugMon_Handler [WEAK] 144 B . 145 ENDP 146PendSV_Handler PROC 147 EXPORT PendSV_Handler [WEAK] 148 B . 149 ENDP 150SysTick_Handler PROC 151 EXPORT SysTick_Handler [WEAK] 152 B . 153 ENDP 154 155Default_Handler PROC 156 EXPORT WDT_IRQHandler [WEAK] 157 EXPORT RTC_IRQHandler [WEAK] 158 EXPORT EFC_IRQHandler [WEAK] 159 EXPORT GPIOAB_IRQHandler [WEAK] 160 EXPORT GPIOCD_IRQHandler [WEAK] 161 EXPORT EXTI_IRQHandler [WEAK] 162 EXPORT SRAM_PARITY_IRQHandler [WEAK] 163 EXPORT CLKRDY_IRQHandler [WEAK] 164 EXPORT UART4_IRQHandler [WEAK] 165 EXPORT DMA_IRQHandler [WEAK] 166 EXPORT UART3_IRQHandler [WEAK] 167 EXPORT RSV_IRQHandler [WEAK] 168 EXPORT ADC_IRQHandler [WEAK] 169 EXPORT TIM1_BRK_UP_TRG_COM_IRQHandler [WEAK] 170 EXPORT TIM1_CC_IRQHandler [WEAK] 171 EXPORT TIM2_IRQHandler [WEAK] 172 EXPORT TIM3_IRQHandler [WEAK] 173 EXPORT TIM6_IRQHandler [WEAK] 174 EXPORT TIM7_IRQHandler [WEAK] 175 EXPORT TIM14_IRQHandler [WEAK] 176 EXPORT TIM15_IRQHandler [WEAK] 177 EXPORT TIM16_IRQHandler [WEAK] 178 EXPORT TIM17_IRQHandler [WEAK] 179 EXPORT I2C1_IRQHandler [WEAK] 180 EXPORT I2C2_IRQHandler [WEAK] 181 EXPORT SPI1_IRQHandler [WEAK] 182 EXPORT SPI2_IRQHandler [WEAK] 183 EXPORT UART1_IRQHandler [WEAK] 184 EXPORT UART2_IRQHandler [WEAK] 185 EXPORT LPUART_IRQHandler [WEAK] 186 EXPORT SPI3_IRQHandler [WEAK] 187 EXPORT AES_IRQHandler [WEAK] 188 EXPORT USB_IRQHandler [WEAK] 189 EXPORT RSV_IRQHandler [WEAK] 190 EXPORT DAC_IRQHandler [WEAK] 191 EXPORT I2S_IRQHandler [WEAK] 192 EXPORT GPIOEF_IRQHandler [WEAK] 193 EXPORT CAN1_IRQHandler [WEAK] 194 EXPORT CAN2_IRQHandler [WEAK] 195 EXPORT FPU_IRQHandler [WEAK] 196 EXPORT TIM4_IRQHandler [WEAK] 197 EXPORT SPI4_IRQHandler [WEAK] 198WDT_IRQHandler 199RTC_IRQHandler 200EFC_IRQHandler 201GPIOAB_IRQHandler 202GPIOCD_IRQHandler 203EXTI_IRQHandler 204SRAM_PARITY_IRQHandler 205CLKRDY_IRQHandler 206UART4_IRQHandler 207DMA_IRQHandler 208UART3_IRQHandler 209ADC_IRQHandler 210TIM1_BRK_UP_TRG_COM_IRQHandler 211TIM1_CC_IRQHandler 212TIM2_IRQHandler 213TIM3_IRQHandler 214TIM6_IRQHandler 215TIM7_IRQHandler 216TIM14_IRQHandler 217TIM15_IRQHandler 218TIM16_IRQHandler 219TIM17_IRQHandler 220I2C1_IRQHandler 221I2C2_IRQHandler 222SPI1_IRQHandler 223SPI2_IRQHandler 224UART1_IRQHandler 225UART2_IRQHandler 226LPUART_IRQHandler 227SPI3_IRQHandler 228AES_IRQHandler 229USB_IRQHandler 230RSV_IRQHandler 231DAC_IRQHandler 232I2S_IRQHandler 233GPIOEF_IRQHandler 234CAN1_IRQHandler 235CAN2_IRQHandler 236FPU_IRQHandler 237TIM4_IRQHandler 238SPI4_IRQHandler 239 240 B . 241 242 ENDP 243 244 ALIGN 245;******************************************************************************* 246; User Stack and Heap initialization 247;******************************************************************************* 248 249 IF :DEF:__MICROLIB 250 251 EXPORT __initial_sp 252 EXPORT __heap_base 253 EXPORT __heap_limit 254 255 ELSE 256 257 IMPORT __use_two_region_memory 258 EXPORT __user_initial_stackheap 259__user_initial_stackheap 260 261 LDR R0, = Heap_Mem 262 LDR R1, =(Stack_Mem + Stack_Size) 263 LDR R2, = (Heap_Mem + Heap_Size) 264 LDR R3, = Stack_Mem 265 BX LR 266 267 ALIGN 268 269 ENDIF 270 271 END 272