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; Amount of memory (in bytes) allocated for Stack 19; Tailor this value to your application needs 20; <h> Stack Configuration 21; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> 22; </h> 23 24Stack_Size EQU 0x00000400 25 26 AREA STACK, NOINIT, READWRITE, ALIGN=3 27Stack_Mem SPACE Stack_Size 28__initial_sp 29 30 31; <h> Heap Configuration 32; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> 33; </h> 34 35Heap_Size EQU 0x00000200 36 37 AREA HEAP, NOINIT, READWRITE, ALIGN=3 38__heap_base 39Heap_Mem SPACE Heap_Size 40__heap_limit 41 42 PRESERVE8 43 THUMB 44 45 46; Vector Table Mapped to Address 0 at Reset 47 AREA RESET, DATA, READONLY 48 EXPORT __Vectors 49 EXPORT __Vectors_End 50 EXPORT __Vectors_Size 51 52__Vectors DCD __initial_sp ; Top of Stack 53 DCD Reset_Handler ; Reset Handler 54 DCD NMI_Handler ; NMI Handler 55 DCD HardFault_Handler ; Hard Fault Handler 56 DCD MemManage_Handler ; MPU Fault Handler 57 DCD BusFault_Handler ; Bus Fault Handler 58 DCD UsageFault_Handler ; Usage Fault Handler 59 DCD 0 ; Reserved 60 DCD 0 ; Reserved 61 DCD 0 ; Reserved 62 DCD 0 ; Reserved 63 DCD SVC_Handler ; SVCall Handler 64 DCD DebugMon_Handler ; Debug Monitor Handler 65 DCD 0 ; Reserved 66 DCD PendSV_Handler ; PendSV Handler 67 DCD SysTick_Handler ; SysTick Handler 68 69 ; External Interrupts 70 DCD WWDG_IRQHandler ; Window Watchdog 71 DCD PVD_IRQHandler ; PVD through EXTI Line detect 72 DCD TAMPER_IRQHandler ; Tamper 73 DCD RTC_IRQHandler ; RTC 74 DCD FLASH_IRQHandler ; Flash 75 DCD RCC_IRQHandler ; RCC 76 DCD EXTI0_IRQHandler ; EXTI Line 0 77 DCD EXTI1_IRQHandler ; EXTI Line 1 78 DCD EXTI2_IRQHandler ; EXTI Line 2 79 DCD EXTI3_IRQHandler ; EXTI Line 3 80 DCD EXTI4_IRQHandler ; EXTI Line 4 81 DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 82 DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 83 DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3 84 DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4 85 DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5 86 DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6 87 DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7 88 DCD ADC1_2_IRQHandler ; ADC1_2 89 DCD USB_HP_CAN1_TX_IRQHandler ; USB High Priority or CAN1 TX 90 DCD USB_LP_CAN1_RX0_IRQHandler ; USB Low Priority or CAN1 RX0 91 DCD CAN1_RX1_IRQHandler ; CAN1 RX1 92 DCD CAN1_SCE_IRQHandler ; CAN1 SCE 93 DCD EXTI9_5_IRQHandler ; EXTI Line 9..5 94 DCD TIM1_BRK_IRQHandler ; TIM1 Break 95 DCD TIM1_UP_IRQHandler ; TIM1 Update 96 DCD TIM1_TRG_COM_IRQHandler ; TIM1 Trigger and Commutation 97 DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare 98 DCD TIM2_IRQHandler ; TIM2 99 DCD TIM3_IRQHandler ; TIM3 100 DCD TIM4_IRQHandler ; TIM4 101 DCD I2C1_EV_IRQHandler ; I2C1 Event 102 DCD I2C1_ER_IRQHandler ; I2C1 Error 103 DCD I2C2_EV_IRQHandler ; I2C2 Event 104 DCD I2C2_ER_IRQHandler ; I2C2 Error 105 DCD SPI1_IRQHandler ; SPI1 106 DCD SPI2_IRQHandler ; SPI2 107 DCD UART1_IRQHandler ; UART1 108 DCD UART2_IRQHandler ; UART2 109 DCD UART3_IRQHandler ; UART3 110 DCD EXTI15_10_IRQHandler ; EXTI Line 15..10 111 DCD RTCAlarm_IRQHandler ; RTC Alarm through EXTI Line 17 112 DCD USBWakeUp_IRQHandler ; USB Wakeup from suspend 113 114__Vectors_End 115 116__Vectors_Size EQU __Vectors_End - __Vectors 117 118 AREA |.text|, CODE, READONLY 119 120; Reset handler 121Reset_Handler PROC 122 EXPORT Reset_Handler [WEAK] 123 IMPORT __main 124 IMPORT SystemInit 125 LDR R0, =SystemInit 126 BLX R0 127 LDR R0, =__main 128 BX R0 129 ENDP 130 131; Dummy Exception Handlers (infinite loops which can be modified) 132 133NMI_Handler PROC 134 EXPORT NMI_Handler [WEAK] 135 B . 136 ENDP 137HardFault_Handler\ 138 PROC 139 EXPORT HardFault_Handler [WEAK] 140 B . 141 ENDP 142MemManage_Handler\ 143 PROC 144 EXPORT MemManage_Handler [WEAK] 145 B . 146 ENDP 147BusFault_Handler\ 148 PROC 149 EXPORT BusFault_Handler [WEAK] 150 B . 151 ENDP 152UsageFault_Handler\ 153 PROC 154 EXPORT UsageFault_Handler [WEAK] 155 B . 156 ENDP 157SVC_Handler PROC 158 EXPORT SVC_Handler [WEAK] 159 B . 160 ENDP 161DebugMon_Handler\ 162 PROC 163 EXPORT DebugMon_Handler [WEAK] 164 B . 165 ENDP 166PendSV_Handler PROC 167 EXPORT PendSV_Handler [WEAK] 168 B . 169 ENDP 170SysTick_Handler PROC 171 EXPORT SysTick_Handler [WEAK] 172 B . 173 ENDP 174 175Default_Handler PROC 176 177 EXPORT WWDG_IRQHandler [WEAK] 178 EXPORT PVD_IRQHandler [WEAK] 179 EXPORT TAMPER_IRQHandler [WEAK] 180 EXPORT RTC_IRQHandler [WEAK] 181 EXPORT FLASH_IRQHandler [WEAK] 182 EXPORT RCC_IRQHandler [WEAK] 183 EXPORT EXTI0_IRQHandler [WEAK] 184 EXPORT EXTI1_IRQHandler [WEAK] 185 EXPORT EXTI2_IRQHandler [WEAK] 186 EXPORT EXTI3_IRQHandler [WEAK] 187 EXPORT EXTI4_IRQHandler [WEAK] 188 EXPORT DMA1_Channel1_IRQHandler [WEAK] 189 EXPORT DMA1_Channel2_IRQHandler [WEAK] 190 EXPORT DMA1_Channel3_IRQHandler [WEAK] 191 EXPORT DMA1_Channel4_IRQHandler [WEAK] 192 EXPORT DMA1_Channel5_IRQHandler [WEAK] 193 EXPORT DMA1_Channel6_IRQHandler [WEAK] 194 EXPORT DMA1_Channel7_IRQHandler [WEAK] 195 EXPORT ADC1_2_IRQHandler [WEAK] 196 EXPORT USB_HP_CAN1_TX_IRQHandler [WEAK] 197 EXPORT USB_LP_CAN1_RX0_IRQHandler [WEAK] 198 EXPORT CAN1_RX1_IRQHandler [WEAK] 199 EXPORT CAN1_SCE_IRQHandler [WEAK] 200 EXPORT EXTI9_5_IRQHandler [WEAK] 201 EXPORT TIM1_BRK_IRQHandler [WEAK] 202 EXPORT TIM1_UP_IRQHandler [WEAK] 203 EXPORT TIM1_TRG_COM_IRQHandler [WEAK] 204 EXPORT TIM1_CC_IRQHandler [WEAK] 205 EXPORT TIM2_IRQHandler [WEAK] 206 EXPORT TIM3_IRQHandler [WEAK] 207 EXPORT TIM4_IRQHandler [WEAK] 208 EXPORT I2C1_EV_IRQHandler [WEAK] 209 EXPORT I2C1_ER_IRQHandler [WEAK] 210 EXPORT I2C2_EV_IRQHandler [WEAK] 211 EXPORT I2C2_ER_IRQHandler [WEAK] 212 EXPORT SPI1_IRQHandler [WEAK] 213 EXPORT SPI2_IRQHandler [WEAK] 214 EXPORT UART1_IRQHandler [WEAK] 215 EXPORT UART2_IRQHandler [WEAK] 216 EXPORT UART3_IRQHandler [WEAK] 217 EXPORT EXTI15_10_IRQHandler [WEAK] 218 EXPORT RTCAlarm_IRQHandler [WEAK] 219 EXPORT USBWakeUp_IRQHandler [WEAK] 220 221WWDG_IRQHandler 222PVD_IRQHandler 223TAMPER_IRQHandler 224RTC_IRQHandler 225FLASH_IRQHandler 226RCC_IRQHandler 227EXTI0_IRQHandler 228EXTI1_IRQHandler 229EXTI2_IRQHandler 230EXTI3_IRQHandler 231EXTI4_IRQHandler 232DMA1_Channel1_IRQHandler 233DMA1_Channel2_IRQHandler 234DMA1_Channel3_IRQHandler 235DMA1_Channel4_IRQHandler 236DMA1_Channel5_IRQHandler 237DMA1_Channel6_IRQHandler 238DMA1_Channel7_IRQHandler 239ADC1_2_IRQHandler 240USB_HP_CAN1_TX_IRQHandler 241USB_LP_CAN1_RX0_IRQHandler 242CAN1_RX1_IRQHandler 243CAN1_SCE_IRQHandler 244EXTI9_5_IRQHandler 245TIM1_BRK_IRQHandler 246TIM1_UP_IRQHandler 247TIM1_TRG_COM_IRQHandler 248TIM1_CC_IRQHandler 249TIM2_IRQHandler 250TIM3_IRQHandler 251TIM4_IRQHandler 252I2C1_EV_IRQHandler 253I2C1_ER_IRQHandler 254I2C2_EV_IRQHandler 255I2C2_ER_IRQHandler 256SPI1_IRQHandler 257SPI2_IRQHandler 258UART1_IRQHandler 259UART2_IRQHandler 260UART3_IRQHandler 261EXTI15_10_IRQHandler 262RTCAlarm_IRQHandler 263USBWakeUp_IRQHandler 264 265 B . 266 267 ENDP 268 269 ALIGN 270 271;******************************************************************************* 272; User Stack and Heap initialization 273;******************************************************************************* 274 IF :DEF:__MICROLIB 275 276 EXPORT __initial_sp 277 EXPORT __heap_base 278 EXPORT __heap_limit 279 280 ELSE 281 282 IMPORT __use_two_region_memory 283 EXPORT __user_initial_stackheap 284 285__user_initial_stackheap 286 287 LDR R0, = Heap_Mem 288 LDR R1, =(Stack_Mem + Stack_Size) 289 LDR R2, = (Heap_Mem + Heap_Size) 290 LDR R3, = Stack_Mem 291 BX LR 292 293 ALIGN 294 295 ENDIF 296 297 END 298 299;******************** (C) COPYRIGHT 2019 MindMotion ******************** 300