1;******************** (C) COPYRIGHT 2019 MindMotion ******************** 2;* File Name : startup_MM32F103.s 3;* Author : AE Team 4;* Version : V1.1.0 5;* Date : 28/08/2019 6;* Description : MM32F103 Medium-density devices vector table for EWARM toolchain. 7;* This module performs: 8;* - Set the initial SP 9;* - Set the initial PC == __iar_program_start, 10;* - Set the vector table entries with the exceptions ISR 11;* address 12;* - Configure the system clock 13;* - Branches to main in the C library (which eventually 14;* calls main()). 15;* After Reset the Cortex-M3 processor is in Thread mode, 16;* priority is Privileged, and the Stack is set to Main. 17;******************************************************************************* 18; 19; 20; The modules in this file are included in the libraries, and may be replaced 21; by any user-defined modules that define the PUBLIC symbol _program_start or 22; a user defined start symbol. 23; To override the cstartup defined in the library, simply add your modified 24; version to the workbench project. 25; 26; The vector table is normally located at address 0. 27; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. 28; The name "__vector_table" has special meaning for C-SPY: 29; it is where the SP start value is found, and the NVIC vector 30; table register (VTOR) is initialized to this address if != 0. 31; 32; Cortex-M version 33; 34 35 MODULE ?cstartup 36 37 ;; Forward declaration of sections. 38 SECTION CSTACK:DATA:NOROOT(3) 39 40 SECTION .intvec:CODE:NOROOT(2) 41 42 EXTERN __iar_program_start 43 EXTERN SystemInit 44 PUBLIC __vector_table 45 46 DATA 47__vector_table 48 DCD sfe(CSTACK) 49 DCD Reset_Handler ; Reset Handler 50 DCD NMI_Handler ; NMI Handler 51 DCD HardFault_Handler ; Hard Fault Handler 52 DCD MemManage_Handler ; MPU Fault Handler 53 DCD BusFault_Handler ; Bus Fault Handler 54 DCD UsageFault_Handler ; Usage Fault Handler 55 DCD 0 ; Reserved 56 DCD 0 ; Reserved 57 DCD 0 ; Reserved 58 DCD 0 ; Reserved 59 DCD SVC_Handler ; SVCall Handler 60 DCD DebugMon_Handler ; Debug Monitor Handler 61 DCD 0 ; Reserved 62 DCD PendSV_Handler ; PendSV Handler 63 DCD SysTick_Handler ; SysTick Handler 64 65 ; External Interrupts 66 DCD WWDG_IRQHandler ; Window Watchdog 67 DCD PVD_IRQHandler ; PVD through EXTI Line detect 68 DCD TAMPER_IRQHandler ; Tamper 69 DCD RTC_IRQHandler ; RTC 70 DCD FLASH_IRQHandler ; Flash 71 DCD RCC_IRQHandler ; RCC 72 DCD EXTI0_IRQHandler ; EXTI Line 0 73 DCD EXTI1_IRQHandler ; EXTI Line 1 74 DCD EXTI2_IRQHandler ; EXTI Line 2 75 DCD EXTI3_IRQHandler ; EXTI Line 3 76 DCD EXTI4_IRQHandler ; EXTI Line 4 77 DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 78 DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 79 DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3 80 DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4 81 DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5 82 DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6 83 DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7 84 DCD ADC1_2_IRQHandler ; ADC1 & ADC2 85 DCD USB_HP_CAN1_TX_IRQHandler ; USB High Priority or CAN1 TX 86 DCD USB_LP_CAN1_RX0_IRQHandler ; USB Low Priority or CAN1 RX0 87 DCD CAN1_RX1_IRQHandler ; CAN1 RX1 88 DCD CAN1_SCE_IRQHandler ; CAN1 SCE 89 DCD EXTI9_5_IRQHandler ; EXTI Line 9..5 90 DCD TIM1_BRK_IRQHandler ; TIM1 Break 91 DCD TIM1_UP_IRQHandler ; TIM1 Update 92 DCD TIM1_TRG_COM_IRQHandler ; TIM1 Trigger and Commutation 93 DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare 94 DCD TIM2_IRQHandler ; TIM2 95 DCD TIM3_IRQHandler ; TIM3 96 DCD TIM4_IRQHandler ; TIM4 97 DCD I2C1_EV_IRQHandler ; I2C1 Event 98 DCD I2C1_ER_IRQHandler ; I2C1 Error 99 DCD I2C2_EV_IRQHandler ; I2C2 Event 100 DCD I2C2_ER_IRQHandler ; I2C2 Error 101 DCD SPI1_IRQHandler ; SPI1 102 DCD SPI2_IRQHandler ; SPI2 103 DCD UART1_IRQHandler ; UART1 104 DCD UART2_IRQHandler ; UART2 105 DCD UART3_IRQHandler ; UART3 106 DCD EXTI15_10_IRQHandler ; EXTI Line 15..10 107 DCD RTCAlarm_IRQHandler ; RTC Alarm through EXTI Line 108 DCD USBWakeUp_IRQHandler ; USB Wakeup from suspend 109 110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 111;; 112;; Default interrupt handlers. 113;; 114 THUMB 115 116 PUBWEAK Reset_Handler 117 SECTION .text:CODE:NOROOT:REORDER(2) 118Reset_Handler 119 LDR R0, =SystemInit 120 BLX R0 121 LDR R0, =__iar_program_start 122 BX R0 123 PUBWEAK NMI_Handler 124 SECTION .text:CODE:NOROOT:REORDER(1) 125NMI_Handler 126 B NMI_Handler 127 PUBWEAK HardFault_Handler 128 SECTION .text:CODE:NOROOT:REORDER(1) 129HardFault_Handler 130 B HardFault_Handler 131 PUBWEAK MemManage_Handler 132 SECTION .text:CODE:NOROOT:REORDER(1) 133MemManage_Handler 134 B MemManage_Handler 135 PUBWEAK BusFault_Handler 136 SECTION .text:CODE:NOROOT:REORDER(1) 137BusFault_Handler 138 B BusFault_Handler 139 PUBWEAK UsageFault_Handler 140 SECTION .text:CODE:NOROOT:REORDER(1) 141UsageFault_Handler 142 B UsageFault_Handler 143 PUBWEAK SVC_Handler 144 SECTION .text:CODE:NOROOT:REORDER(1) 145SVC_Handler 146 B SVC_Handler 147 PUBWEAK DebugMon_Handler 148 SECTION .text:CODE:NOROOT:REORDER(1) 149DebugMon_Handler 150 B DebugMon_Handler 151 PUBWEAK PendSV_Handler 152 SECTION .text:CODE:NOROOT:REORDER(1) 153PendSV_Handler 154 B PendSV_Handler 155 PUBWEAK SysTick_Handler 156 SECTION .text:CODE:NOROOT:REORDER(1) 157SysTick_Handler 158 B SysTick_Handler 159 PUBWEAK WWDG_IRQHandler 160 SECTION .text:CODE:NOROOT:REORDER(1) 161WWDG_IRQHandler 162 B WWDG_IRQHandler 163 PUBWEAK PVD_IRQHandler 164 SECTION .text:CODE:NOROOT:REORDER(1) 165PVD_IRQHandler 166 B PVD_IRQHandler 167 PUBWEAK TAMPER_IRQHandler 168 SECTION .text:CODE:NOROOT:REORDER(1) 169TAMPER_IRQHandler 170 B TAMPER_IRQHandler 171 PUBWEAK RTC_IRQHandler 172 SECTION .text:CODE:NOROOT:REORDER(1) 173RTC_IRQHandler 174 B RTC_IRQHandler 175 PUBWEAK FLASH_IRQHandler 176 SECTION .text:CODE:NOROOT:REORDER(1) 177FLASH_IRQHandler 178 B FLASH_IRQHandler 179 PUBWEAK RCC_IRQHandler 180 SECTION .text:CODE:NOROOT:REORDER(1) 181RCC_IRQHandler 182 B RCC_IRQHandler 183 PUBWEAK EXTI0_IRQHandler 184 SECTION .text:CODE:NOROOT:REORDER(1) 185EXTI0_IRQHandler 186 B EXTI0_IRQHandler 187 PUBWEAK EXTI1_IRQHandler 188 SECTION .text:CODE:NOROOT:REORDER(1) 189EXTI1_IRQHandler 190 B EXTI1_IRQHandler 191 PUBWEAK EXTI2_IRQHandler 192 SECTION .text:CODE:NOROOT:REORDER(1) 193EXTI2_IRQHandler 194 B EXTI2_IRQHandler 195 PUBWEAK EXTI3_IRQHandler 196 SECTION .text:CODE:NOROOT:REORDER(1) 197EXTI3_IRQHandler 198 B EXTI3_IRQHandler 199 PUBWEAK EXTI4_IRQHandler 200 SECTION .text:CODE:NOROOT:REORDER(1) 201EXTI4_IRQHandler 202 B EXTI4_IRQHandler 203 PUBWEAK DMA1_Channel1_IRQHandler 204 SECTION .text:CODE:NOROOT:REORDER(1) 205DMA1_Channel1_IRQHandler 206 B DMA1_Channel1_IRQHandler 207 PUBWEAK DMA1_Channel2_IRQHandler 208 SECTION .text:CODE:NOROOT:REORDER(1) 209DMA1_Channel2_IRQHandler 210 B DMA1_Channel2_IRQHandler 211 PUBWEAK DMA1_Channel3_IRQHandler 212 SECTION .text:CODE:NOROOT:REORDER(1) 213DMA1_Channel3_IRQHandler 214 B DMA1_Channel3_IRQHandler 215 PUBWEAK DMA1_Channel4_IRQHandler 216 SECTION .text:CODE:NOROOT:REORDER(1) 217DMA1_Channel4_IRQHandler 218 B DMA1_Channel4_IRQHandler 219 PUBWEAK DMA1_Channel5_IRQHandler 220 SECTION .text:CODE:NOROOT:REORDER(1) 221DMA1_Channel5_IRQHandler 222 B DMA1_Channel5_IRQHandler 223 PUBWEAK DMA1_Channel6_IRQHandler 224 SECTION .text:CODE:NOROOT:REORDER(1) 225DMA1_Channel6_IRQHandler 226 B DMA1_Channel6_IRQHandler 227 PUBWEAK DMA1_Channel7_IRQHandler 228 SECTION .text:CODE:NOROOT:REORDER(1) 229DMA1_Channel7_IRQHandler 230 B DMA1_Channel7_IRQHandler 231 PUBWEAK ADC1_2_IRQHandler 232 SECTION .text:CODE:NOROOT:REORDER(1) 233ADC1_2_IRQHandler 234 B ADC1_2_IRQHandler 235 PUBWEAK USB_HP_CAN1_TX_IRQHandler 236 SECTION .text:CODE:NOROOT:REORDER(1) 237USB_HP_CAN1_TX_IRQHandler 238 B USB_HP_CAN1_TX_IRQHandler 239 PUBWEAK USB_LP_CAN1_RX0_IRQHandler 240 SECTION .text:CODE:NOROOT:REORDER(1) 241USB_LP_CAN1_RX0_IRQHandler 242 B USB_LP_CAN1_RX0_IRQHandler 243 PUBWEAK CAN1_RX1_IRQHandler 244 SECTION .text:CODE:NOROOT:REORDER(1) 245CAN1_RX1_IRQHandler 246 B CAN1_RX1_IRQHandler 247 PUBWEAK CAN1_SCE_IRQHandler 248 SECTION .text:CODE:NOROOT:REORDER(1) 249CAN1_SCE_IRQHandler 250 B CAN1_SCE_IRQHandler 251 PUBWEAK EXTI9_5_IRQHandler 252 SECTION .text:CODE:NOROOT:REORDER(1) 253EXTI9_5_IRQHandler 254 B EXTI9_5_IRQHandler 255 PUBWEAK TIM1_BRK_IRQHandler 256 SECTION .text:CODE:NOROOT:REORDER(1) 257TIM1_BRK_IRQHandler 258 B TIM1_BRK_IRQHandler 259 PUBWEAK TIM1_UP_IRQHandler 260 SECTION .text:CODE:NOROOT:REORDER(1) 261TIM1_UP_IRQHandler 262 B TIM1_UP_IRQHandler 263 PUBWEAK TIM1_TRG_COM_IRQHandler 264 SECTION .text:CODE:NOROOT:REORDER(1) 265TIM1_TRG_COM_IRQHandler 266 B TIM1_TRG_COM_IRQHandler 267 PUBWEAK TIM1_CC_IRQHandler 268 SECTION .text:CODE:NOROOT:REORDER(1) 269TIM1_CC_IRQHandler 270 B TIM1_CC_IRQHandler 271 PUBWEAK TIM2_IRQHandler 272 SECTION .text:CODE:NOROOT:REORDER(1) 273TIM2_IRQHandler 274 B TIM2_IRQHandler 275 PUBWEAK TIM3_IRQHandler 276 SECTION .text:CODE:NOROOT:REORDER(1) 277TIM3_IRQHandler 278 B TIM3_IRQHandler 279 PUBWEAK TIM4_IRQHandler 280 SECTION .text:CODE:NOROOT:REORDER(1) 281TIM4_IRQHandler 282 B TIM4_IRQHandler 283 PUBWEAK I2C1_EV_IRQHandler 284 SECTION .text:CODE:NOROOT:REORDER(1) 285I2C1_EV_IRQHandler 286 B I2C1_EV_IRQHandler 287 PUBWEAK I2C1_ER_IRQHandler 288 SECTION .text:CODE:NOROOT:REORDER(1) 289I2C1_ER_IRQHandler 290 B I2C1_ER_IRQHandler 291 PUBWEAK I2C2_EV_IRQHandler 292 SECTION .text:CODE:NOROOT:REORDER(1) 293I2C2_EV_IRQHandler 294 B I2C2_EV_IRQHandler 295 PUBWEAK I2C2_ER_IRQHandler 296 SECTION .text:CODE:NOROOT:REORDER(1) 297I2C2_ER_IRQHandler 298 B I2C2_ER_IRQHandler 299 PUBWEAK SPI1_IRQHandler 300 SECTION .text:CODE:NOROOT:REORDER(1) 301SPI1_IRQHandler 302 B SPI1_IRQHandler 303 PUBWEAK SPI2_IRQHandler 304 SECTION .text:CODE:NOROOT:REORDER(1) 305SPI2_IRQHandler 306 B SPI2_IRQHandler 307 PUBWEAK UART1_IRQHandler 308 SECTION .text:CODE:NOROOT:REORDER(1) 309UART1_IRQHandler 310 B UART1_IRQHandler 311 PUBWEAK UART2_IRQHandler 312 SECTION .text:CODE:NOROOT:REORDER(1) 313UART2_IRQHandler 314 B UART2_IRQHandler 315 PUBWEAK UART3_IRQHandler 316 SECTION .text:CODE:NOROOT:REORDER(1) 317UART3_IRQHandler 318 B UART3_IRQHandler 319 PUBWEAK EXTI15_10_IRQHandler 320 SECTION .text:CODE:NOROOT:REORDER(1) 321EXTI15_10_IRQHandler 322 B EXTI15_10_IRQHandler 323 PUBWEAK RTCAlarm_IRQHandler 324 SECTION .text:CODE:NOROOT:REORDER(1) 325RTCAlarm_IRQHandler 326 B RTCAlarm_IRQHandler 327 PUBWEAK USBWakeUp_IRQHandler 328 SECTION .text:CODE:NOROOT:REORDER(1) 329USBWakeUp_IRQHandler 330 B USBWakeUp_IRQHandler 331 332 END 333;******************** (C) COPYRIGHT 2019 MindMotion ******************** 334