1;********************* (C) COPYRIGHT 2017 STMicroelectronics ******************** 2;* File Name : startup_stm32l151xb.s 3;* Author : MCD Application Team 4;* Description : STM32L151XB Devices vector 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 9;* address. 10;* - Configure the system clock 11;* - Branches to __main in the C library (which eventually 12;* calls main()). 13;* After Reset the Cortex-M3 processor is in Thread mode, 14;* priority is Privileged, and the Stack is set to Main. 15;******************************************************************************** 16;* 17;* Copyright (c) 2017 STMicroelectronics. All rights reserved. 18;* 19;* This software component is licensed by ST under BSD 3-Clause license, 20;* the "License"; You may not use this file except in compliance with the 21;* License. You may obtain a copy of the License at: 22;* opensource.org/licenses/BSD-3-Clause 23;* 24;******************************************************************************* 25;* <<< Use Configuration Wizard in Context Menu >>> 26; 27; Amount of memory (in bytes) allocated for Stack 28; Tailor this value to your application needs 29; <h> Stack Configuration 30; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> 31; </h> 32 33Stack_Size EQU 0x00000400 34 35 AREA STACK, NOINIT, READWRITE, ALIGN=3 36Stack_Mem SPACE Stack_Size 37__initial_sp 38 39 40; <h> Heap Configuration 41; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> 42; </h> 43 44Heap_Size EQU 0x00000000 45 46 AREA HEAP, NOINIT, READWRITE, ALIGN=3 47__heap_base 48Heap_Mem SPACE Heap_Size 49__heap_limit 50 51 PRESERVE8 52 THUMB 53 54 55; Vector Table Mapped to Address 0 at Reset 56 AREA RESET, DATA, READONLY 57 EXPORT __Vectors 58 EXPORT __Vectors_End 59 EXPORT __Vectors_Size 60 61__Vectors DCD __initial_sp ; Top of Stack 62 DCD Reset_Handler ; Reset Handler 63 DCD NMI_Handler ; NMI Handler 64 DCD HardFault_Handler ; Hard Fault Handler 65 DCD MemManage_Handler ; MPU Fault Handler 66 DCD BusFault_Handler ; Bus Fault Handler 67 DCD UsageFault_Handler ; Usage Fault Handler 68 DCD 0 ; Reserved 69 DCD 0 ; Reserved 70 DCD 0 ; Reserved 71 DCD 0 ; Reserved 72 DCD SVC_Handler ; SVCall Handler 73 DCD DebugMon_Handler ; Debug Monitor Handler 74 DCD 0 ; Reserved 75 DCD PendSV_Handler ; PendSV Handler 76 DCD SysTick_Handler ; SysTick Handler 77 78 ; External Interrupts 79 DCD WWDG_IRQHandler ; Window Watchdog 80 DCD PVD_IRQHandler ; PVD through EXTI Line detect 81 DCD TAMPER_STAMP_IRQHandler ; Tamper and Time Stamp 82 DCD RTC_WKUP_IRQHandler ; RTC Wakeup 83 DCD FLASH_IRQHandler ; FLASH 84 DCD RCC_IRQHandler ; RCC 85 DCD EXTI0_IRQHandler ; EXTI Line 0 86 DCD EXTI1_IRQHandler ; EXTI Line 1 87 DCD EXTI2_IRQHandler ; EXTI Line 2 88 DCD EXTI3_IRQHandler ; EXTI Line 3 89 DCD EXTI4_IRQHandler ; EXTI Line 4 90 DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 91 DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 92 DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3 93 DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4 94 DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5 95 DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6 96 DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7 97 DCD ADC1_IRQHandler ; ADC1 98 DCD USB_HP_IRQHandler ; USB High Priority 99 DCD USB_LP_IRQHandler ; USB Low Priority 100 DCD DAC_IRQHandler ; DAC 101 DCD COMP_IRQHandler ; COMP through EXTI Line 102 DCD EXTI9_5_IRQHandler ; EXTI Line 9..5 103 DCD 0 ; Reserved 104 DCD TIM9_IRQHandler ; TIM9 105 DCD TIM10_IRQHandler ; TIM10 106 DCD TIM11_IRQHandler ; TIM11 107 DCD TIM2_IRQHandler ; TIM2 108 DCD TIM3_IRQHandler ; TIM3 109 DCD TIM4_IRQHandler ; TIM4 110 DCD I2C1_EV_IRQHandler ; I2C1 Event 111 DCD I2C1_ER_IRQHandler ; I2C1 Error 112 DCD I2C2_EV_IRQHandler ; I2C2 Event 113 DCD I2C2_ER_IRQHandler ; I2C2 Error 114 DCD SPI1_IRQHandler ; SPI1 115 DCD SPI2_IRQHandler ; SPI2 116 DCD USART1_IRQHandler ; USART1 117 DCD USART2_IRQHandler ; USART2 118 DCD USART3_IRQHandler ; USART3 119 DCD EXTI15_10_IRQHandler ; EXTI Line 15..10 120 DCD RTC_Alarm_IRQHandler ; RTC Alarm through EXTI Line 121 DCD USB_FS_WKUP_IRQHandler ; USB FS Wakeup from suspend 122 DCD TIM6_IRQHandler ; TIM6 123 DCD TIM7_IRQHandler ; TIM7 124 125__Vectors_End 126 127__Vectors_Size EQU __Vectors_End - __Vectors 128 129 AREA |.text|, CODE, READONLY 130 131; Reset handler routine 132Reset_Handler PROC 133 EXPORT Reset_Handler [WEAK] 134 IMPORT __main 135 IMPORT SystemInit 136 LDR R0, =SystemInit 137 BLX R0 138 LDR R0, =__main 139 BX R0 140 ENDP 141 142; Dummy Exception Handlers (infinite loops which can be modified) 143 144NMI_Handler PROC 145 EXPORT NMI_Handler [WEAK] 146 B . 147 ENDP 148HardFault_Handler\ 149 PROC 150 EXPORT HardFault_Handler [WEAK] 151 B . 152 ENDP 153MemManage_Handler\ 154 PROC 155 EXPORT MemManage_Handler [WEAK] 156 B . 157 ENDP 158BusFault_Handler\ 159 PROC 160 EXPORT BusFault_Handler [WEAK] 161 B . 162 ENDP 163UsageFault_Handler\ 164 PROC 165 EXPORT UsageFault_Handler [WEAK] 166 B . 167 ENDP 168SVC_Handler PROC 169 EXPORT SVC_Handler [WEAK] 170 B . 171 ENDP 172DebugMon_Handler\ 173 PROC 174 EXPORT DebugMon_Handler [WEAK] 175 B . 176 ENDP 177PendSV_Handler PROC 178 EXPORT PendSV_Handler [WEAK] 179 B . 180 ENDP 181SysTick_Handler PROC 182 EXPORT SysTick_Handler [WEAK] 183 B . 184 ENDP 185 186Default_Handler PROC 187 188 EXPORT WWDG_IRQHandler [WEAK] 189 EXPORT PVD_IRQHandler [WEAK] 190 EXPORT TAMPER_STAMP_IRQHandler [WEAK] 191 EXPORT RTC_WKUP_IRQHandler [WEAK] 192 EXPORT FLASH_IRQHandler [WEAK] 193 EXPORT RCC_IRQHandler [WEAK] 194 EXPORT EXTI0_IRQHandler [WEAK] 195 EXPORT EXTI1_IRQHandler [WEAK] 196 EXPORT EXTI2_IRQHandler [WEAK] 197 EXPORT EXTI3_IRQHandler [WEAK] 198 EXPORT EXTI4_IRQHandler [WEAK] 199 EXPORT DMA1_Channel1_IRQHandler [WEAK] 200 EXPORT DMA1_Channel2_IRQHandler [WEAK] 201 EXPORT DMA1_Channel3_IRQHandler [WEAK] 202 EXPORT DMA1_Channel4_IRQHandler [WEAK] 203 EXPORT DMA1_Channel5_IRQHandler [WEAK] 204 EXPORT DMA1_Channel6_IRQHandler [WEAK] 205 EXPORT DMA1_Channel7_IRQHandler [WEAK] 206 EXPORT ADC1_IRQHandler [WEAK] 207 EXPORT USB_HP_IRQHandler [WEAK] 208 EXPORT USB_LP_IRQHandler [WEAK] 209 EXPORT DAC_IRQHandler [WEAK] 210 EXPORT COMP_IRQHandler [WEAK] 211 EXPORT EXTI9_5_IRQHandler [WEAK] 212 EXPORT TIM9_IRQHandler [WEAK] 213 EXPORT TIM10_IRQHandler [WEAK] 214 EXPORT TIM11_IRQHandler [WEAK] 215 EXPORT TIM2_IRQHandler [WEAK] 216 EXPORT TIM3_IRQHandler [WEAK] 217 EXPORT TIM4_IRQHandler [WEAK] 218 EXPORT I2C1_EV_IRQHandler [WEAK] 219 EXPORT I2C1_ER_IRQHandler [WEAK] 220 EXPORT I2C2_EV_IRQHandler [WEAK] 221 EXPORT I2C2_ER_IRQHandler [WEAK] 222 EXPORT SPI1_IRQHandler [WEAK] 223 EXPORT SPI2_IRQHandler [WEAK] 224 EXPORT USART1_IRQHandler [WEAK] 225 EXPORT USART2_IRQHandler [WEAK] 226 EXPORT USART3_IRQHandler [WEAK] 227 EXPORT EXTI15_10_IRQHandler [WEAK] 228 EXPORT RTC_Alarm_IRQHandler [WEAK] 229 EXPORT USB_FS_WKUP_IRQHandler [WEAK] 230 EXPORT TIM6_IRQHandler [WEAK] 231 EXPORT TIM7_IRQHandler [WEAK] 232 233WWDG_IRQHandler 234PVD_IRQHandler 235TAMPER_STAMP_IRQHandler 236RTC_WKUP_IRQHandler 237FLASH_IRQHandler 238RCC_IRQHandler 239EXTI0_IRQHandler 240EXTI1_IRQHandler 241EXTI2_IRQHandler 242EXTI3_IRQHandler 243EXTI4_IRQHandler 244DMA1_Channel1_IRQHandler 245DMA1_Channel2_IRQHandler 246DMA1_Channel3_IRQHandler 247DMA1_Channel4_IRQHandler 248DMA1_Channel5_IRQHandler 249DMA1_Channel6_IRQHandler 250DMA1_Channel7_IRQHandler 251ADC1_IRQHandler 252USB_HP_IRQHandler 253USB_LP_IRQHandler 254DAC_IRQHandler 255COMP_IRQHandler 256EXTI9_5_IRQHandler 257TIM9_IRQHandler 258TIM10_IRQHandler 259TIM11_IRQHandler 260TIM2_IRQHandler 261TIM3_IRQHandler 262TIM4_IRQHandler 263I2C1_EV_IRQHandler 264I2C1_ER_IRQHandler 265I2C2_EV_IRQHandler 266I2C2_ER_IRQHandler 267SPI1_IRQHandler 268SPI2_IRQHandler 269USART1_IRQHandler 270USART2_IRQHandler 271USART3_IRQHandler 272EXTI15_10_IRQHandler 273RTC_Alarm_IRQHandler 274USB_FS_WKUP_IRQHandler 275TIM6_IRQHandler 276TIM7_IRQHandler 277 278 B . 279 280 ENDP 281 282 ALIGN 283 284;******************************************************************************* 285; User Stack and Heap initialization 286;******************************************************************************* 287 IF :DEF:__MICROLIB 288 289 EXPORT __initial_sp 290 EXPORT __heap_base 291 EXPORT __heap_limit 292 293 ELSE 294 295 IMPORT __use_two_region_memory 296 EXPORT __user_initial_stackheap 297 298__user_initial_stackheap 299 300 LDR R0, = Heap_Mem 301 LDR R1, =(Stack_Mem + Stack_Size) 302 LDR R2, = (Heap_Mem + Heap_Size) 303 LDR R3, = Stack_Mem 304 BX LR 305 306 ALIGN 307 308 ENDIF 309 310 END 311 312;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****