1;/******************** (C) COPYRIGHT 2009 STMicroelectronics ******************** 2;* File Name : startup_stm32f10x_hd.s 3;* Author : MCD Application Team 4;* Version : V3.1.2 5;* Date : 09/28/2009 6;* Description : STM32F10x High Density Devices vector table for EWARM5.x 7;* toolchain. 8;* This module performs: 9;* - Set the initial SP 10;* - Set the initial PC == __iar_program_start, 11;* - Set the vector table entries with the exceptions ISR address, 12;* - Configure external SRAM mounted on STM3210E-EVAL board 13;* to be used as data memory (optional, to be enabled by user) 14;* After Reset the Cortex-M3 processor is in Thread mode, 15;* priority is Privileged, and the Stack is set to Main. 16;******************************************************************************** 17;* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS 18;* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. 19;* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, 20;* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE 21;* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING 22;* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. 23;*******************************************************************************/ 24; 25; 26; The modules in this file are included in the libraries, and may be replaced 27; by any user-defined modules that define the PUBLIC symbol _program_start or 28; a user defined start symbol. 29; To override the cstartup defined in the library, simply add your modified 30; version to the workbench project. 31; 32; The vector table is normally located at address 0. 33; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. 34; The name "__vector_table" has special meaning for C-SPY: 35; it is where the SP start value is found, and the NVIC vector 36; table register (VTOR) is initialized to this address if != 0. 37; 38; Cortex-M version 39; 40 41 MODULE ?cstartup 42 43 ;; ICODE is the same segment as cstartup. By placing __low_level_init 44 ;; in the same segment, we make sure it can be reached with BL. */ 45 46 SECTION CSTACK:DATA:NOROOT(3) 47 SECTION .icode:CODE:NOROOT(2) 48 PUBLIC __low_level_init 49 50 PUBWEAK SystemInit_ExtMemCtl 51 SECTION .text:CODE:REORDER(2) 52 THUMB 53SystemInit_ExtMemCtl 54 BX LR 55 56__low_level_init: 57 58 ;; Initialize hardware. 59 LDR R0, = SystemInit_ExtMemCtl ; initialize external memory controller 60 MOV R11, LR 61 BLX R0 62 LDR R1, =sfe(CSTACK) ; restore original stack pointer 63 MSR MSP, R1 64 MOV R0,#1 65 ;; Return with BX to be independent of mode of caller 66 BX R11 67 68 ;; Forward declaration of sections. 69 SECTION .intvec:CODE:NOROOT(2) 70 71 EXTERN __iar_program_start 72 PUBLIC __vector_table 73 74 DATA 75__intial_sp EQU 0x20000400 76__vector_table 77 DCD __intial_sp 78 DCD __iar_program_start 79 80 DCD NMI_Handler ; NMI Handler 81 DCD HardFault_Handler ; Hard Fault Handler 82 DCD MemManage_Handler ; MPU Fault Handler 83 DCD BusFault_Handler ; Bus Fault Handler 84 DCD UsageFault_Handler ; Usage Fault Handler 85 DCD 0 ; Reserved 86 DCD 0 ; Reserved 87 DCD 0 ; Reserved 88 DCD 0 ; Reserved 89 DCD SVC_Handler ; SVCall Handler 90 DCD DebugMon_Handler ; Debug Monitor Handler 91 DCD 0 ; Reserved 92 DCD PendSV_Handler ; PendSV Handler 93 DCD SysTick_Handler ; SysTick Handler 94 95 ; External Interrupts 96 DCD WWDG_IRQHandler ; Window Watchdog 97 DCD PVD_IRQHandler ; PVD through EXTI Line detect 98 DCD TAMPER_IRQHandler ; Tamper 99 DCD RTC_IRQHandler ; RTC 100 DCD FLASH_IRQHandler ; Flash 101 DCD RCC_IRQHandler ; RCC 102 DCD EXTI0_IRQHandler ; EXTI Line 0 103 DCD EXTI1_IRQHandler ; EXTI Line 1 104 DCD EXTI2_IRQHandler ; EXTI Line 2 105 DCD EXTI3_IRQHandler ; EXTI Line 3 106 DCD EXTI4_IRQHandler ; EXTI Line 4 107 DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 108 DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 109 DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3 110 DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4 111 DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5 112 DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6 113 DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7 114 DCD ADC1_2_IRQHandler ; ADC1 & ADC2 115 DCD USB_HP_CAN1_TX_IRQHandler ; USB High Priority or CAN1 TX 116 DCD USB_LP_CAN1_RX0_IRQHandler ; USB Low Priority or CAN1 RX0 117 DCD CAN1_RX1_IRQHandler ; CAN1 RX1 118 DCD CAN1_SCE_IRQHandler ; CAN1 SCE 119 DCD EXTI9_5_IRQHandler ; EXTI Line 9..5 120 DCD TIM1_BRK_IRQHandler ; TIM1 Break 121 DCD TIM1_UP_IRQHandler ; TIM1 Update 122 DCD TIM1_TRG_COM_IRQHandler ; TIM1 Trigger and Commutation 123 DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare 124 DCD TIM2_IRQHandler ; TIM2 125 DCD TIM3_IRQHandler ; TIM3 126 DCD TIM4_IRQHandler ; TIM4 127 DCD I2C1_EV_IRQHandler ; I2C1 Event 128 DCD I2C1_ER_IRQHandler ; I2C1 Error 129 DCD I2C2_EV_IRQHandler ; I2C2 Event 130 DCD I2C2_ER_IRQHandler ; I2C2 Error 131 DCD SPI1_IRQHandler ; SPI1 132 DCD SPI2_IRQHandler ; SPI2 133 DCD USART1_IRQHandler ; USART1 134 DCD USART2_IRQHandler ; USART2 135 DCD USART3_IRQHandler ; USART3 136 DCD EXTI15_10_IRQHandler ; EXTI Line 15..10 137 DCD RTCAlarm_IRQHandler ; RTC Alarm through EXTI Line 138 DCD USBWakeUp_IRQHandler ; USB Wakeup from suspend 139 DCD TIM8_BRK_IRQHandler ; TIM8 Break 140 DCD TIM8_UP_IRQHandler ; TIM8 Update 141 DCD TIM8_TRG_COM_IRQHandler ; TIM8 Trigger and Commutation 142 DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare 143 DCD ADC3_IRQHandler ; ADC3 144 DCD FSMC_IRQHandler ; FSMC 145 DCD SDIO_IRQHandler ; SDIO 146 DCD TIM5_IRQHandler ; TIM5 147 DCD SPI3_IRQHandler ; SPI3 148 DCD UART4_IRQHandler ; UART4 149 DCD UART5_IRQHandler ; UART5 150 DCD TIM6_IRQHandler ; TIM6 151 DCD TIM7_IRQHandler ; TIM7 152 DCD DMA2_Channel1_IRQHandler ; DMA2 Channel1 153 DCD DMA2_Channel2_IRQHandler ; DMA2 Channel2 154 DCD DMA2_Channel3_IRQHandler ; DMA2 Channel3 155 DCD DMA2_Channel4_5_IRQHandler ; DMA2 Channel4 & Channel5 156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 157;; 158;; Default interrupt handlers. 159;; 160 THUMB 161 162 PUBWEAK NMI_Handler 163 SECTION .text:CODE:REORDER(1) 164NMI_Handler 165 B NMI_Handler 166 167 PUBWEAK HardFault_Handler 168 SECTION .text:CODE:REORDER(1) 169HardFault_Handler 170 B HardFault_Handler 171 172 PUBWEAK MemManage_Handler 173 SECTION .text:CODE:REORDER(1) 174MemManage_Handler 175 B MemManage_Handler 176 177 PUBWEAK BusFault_Handler 178 SECTION .text:CODE:REORDER(1) 179BusFault_Handler 180 B BusFault_Handler 181 182 PUBWEAK UsageFault_Handler 183 SECTION .text:CODE:REORDER(1) 184UsageFault_Handler 185 B UsageFault_Handler 186 187 PUBWEAK SVC_Handler 188 SECTION .text:CODE:REORDER(1) 189SVC_Handler 190 B SVC_Handler 191 192 PUBWEAK DebugMon_Handler 193 SECTION .text:CODE:REORDER(1) 194DebugMon_Handler 195 B DebugMon_Handler 196 197 PUBWEAK PendSV_Handler 198 SECTION .text:CODE:REORDER(1) 199PendSV_Handler 200 B PendSV_Handler 201 202 PUBWEAK SysTick_Handler 203 SECTION .text:CODE:REORDER(1) 204SysTick_Handler 205 B SysTick_Handler 206 207 PUBWEAK WWDG_IRQHandler 208 SECTION .text:CODE:REORDER(1) 209WWDG_IRQHandler 210 B WWDG_IRQHandler 211 212 PUBWEAK PVD_IRQHandler 213 SECTION .text:CODE:REORDER(1) 214PVD_IRQHandler 215 B PVD_IRQHandler 216 217 PUBWEAK TAMPER_IRQHandler 218 SECTION .text:CODE:REORDER(1) 219TAMPER_IRQHandler 220 B TAMPER_IRQHandler 221 222 PUBWEAK RTC_IRQHandler 223 SECTION .text:CODE:REORDER(1) 224RTC_IRQHandler 225 B RTC_IRQHandler 226 227 PUBWEAK FLASH_IRQHandler 228 SECTION .text:CODE:REORDER(1) 229FLASH_IRQHandler 230 B FLASH_IRQHandler 231 232 PUBWEAK RCC_IRQHandler 233 SECTION .text:CODE:REORDER(1) 234RCC_IRQHandler 235 B RCC_IRQHandler 236 237 PUBWEAK EXTI0_IRQHandler 238 SECTION .text:CODE:REORDER(1) 239EXTI0_IRQHandler 240 B EXTI0_IRQHandler 241 242 PUBWEAK EXTI1_IRQHandler 243 SECTION .text:CODE:REORDER(1) 244EXTI1_IRQHandler 245 B EXTI1_IRQHandler 246 247 PUBWEAK EXTI2_IRQHandler 248 SECTION .text:CODE:REORDER(1) 249EXTI2_IRQHandler 250 B EXTI2_IRQHandler 251 252 PUBWEAK EXTI3_IRQHandler 253 SECTION .text:CODE:REORDER(1) 254EXTI3_IRQHandler 255 B EXTI3_IRQHandler 256 257 PUBWEAK EXTI4_IRQHandler 258 SECTION .text:CODE:REORDER(1) 259EXTI4_IRQHandler 260 B EXTI4_IRQHandler 261 262 PUBWEAK DMA1_Channel1_IRQHandler 263 SECTION .text:CODE:REORDER(1) 264DMA1_Channel1_IRQHandler 265 B DMA1_Channel1_IRQHandler 266 267 PUBWEAK DMA1_Channel2_IRQHandler 268 SECTION .text:CODE:REORDER(1) 269DMA1_Channel2_IRQHandler 270 B DMA1_Channel2_IRQHandler 271 272 PUBWEAK DMA1_Channel3_IRQHandler 273 SECTION .text:CODE:REORDER(1) 274DMA1_Channel3_IRQHandler 275 B DMA1_Channel3_IRQHandler 276 277 PUBWEAK DMA1_Channel4_IRQHandler 278 SECTION .text:CODE:REORDER(1) 279DMA1_Channel4_IRQHandler 280 B DMA1_Channel4_IRQHandler 281 282 PUBWEAK DMA1_Channel5_IRQHandler 283 SECTION .text:CODE:REORDER(1) 284DMA1_Channel5_IRQHandler 285 B DMA1_Channel5_IRQHandler 286 287 PUBWEAK DMA1_Channel6_IRQHandler 288 SECTION .text:CODE:REORDER(1) 289DMA1_Channel6_IRQHandler 290 B DMA1_Channel6_IRQHandler 291 292 PUBWEAK DMA1_Channel7_IRQHandler 293 SECTION .text:CODE:REORDER(1) 294DMA1_Channel7_IRQHandler 295 B DMA1_Channel7_IRQHandler 296 297 PUBWEAK ADC1_2_IRQHandler 298 SECTION .text:CODE:REORDER(1) 299ADC1_2_IRQHandler 300 B ADC1_2_IRQHandler 301 302 PUBWEAK USB_HP_CAN1_TX_IRQHandler 303 SECTION .text:CODE:REORDER(1) 304USB_HP_CAN1_TX_IRQHandler 305 B USB_HP_CAN1_TX_IRQHandler 306 307 PUBWEAK USB_LP_CAN1_RX0_IRQHandler 308 SECTION .text:CODE:REORDER(1) 309USB_LP_CAN1_RX0_IRQHandler 310 B USB_LP_CAN1_RX0_IRQHandler 311 312 PUBWEAK CAN1_RX1_IRQHandler 313 SECTION .text:CODE:REORDER(1) 314CAN1_RX1_IRQHandler 315 B CAN1_RX1_IRQHandler 316 317 PUBWEAK CAN1_SCE_IRQHandler 318 SECTION .text:CODE:REORDER(1) 319CAN1_SCE_IRQHandler 320 B CAN1_SCE_IRQHandler 321 322 PUBWEAK EXTI9_5_IRQHandler 323 SECTION .text:CODE:REORDER(1) 324EXTI9_5_IRQHandler 325 B EXTI9_5_IRQHandler 326 327 PUBWEAK TIM1_BRK_IRQHandler 328 SECTION .text:CODE:REORDER(1) 329TIM1_BRK_IRQHandler 330 B TIM1_BRK_IRQHandler 331 332 PUBWEAK TIM1_UP_IRQHandler 333 SECTION .text:CODE:REORDER(1) 334TIM1_UP_IRQHandler 335 B TIM1_UP_IRQHandler 336 337 PUBWEAK TIM1_TRG_COM_IRQHandler 338 SECTION .text:CODE:REORDER(1) 339TIM1_TRG_COM_IRQHandler 340 B TIM1_TRG_COM_IRQHandler 341 342 PUBWEAK TIM1_CC_IRQHandler 343 SECTION .text:CODE:REORDER(1) 344TIM1_CC_IRQHandler 345 B TIM1_CC_IRQHandler 346 347 PUBWEAK TIM2_IRQHandler 348 SECTION .text:CODE:REORDER(1) 349TIM2_IRQHandler 350 B TIM2_IRQHandler 351 352 PUBWEAK TIM3_IRQHandler 353 SECTION .text:CODE:REORDER(1) 354TIM3_IRQHandler 355 B TIM3_IRQHandler 356 357 PUBWEAK TIM4_IRQHandler 358 SECTION .text:CODE:REORDER(1) 359TIM4_IRQHandler 360 B TIM4_IRQHandler 361 362 PUBWEAK I2C1_EV_IRQHandler 363 SECTION .text:CODE:REORDER(1) 364I2C1_EV_IRQHandler 365 B I2C1_EV_IRQHandler 366 367 PUBWEAK I2C1_ER_IRQHandler 368 SECTION .text:CODE:REORDER(1) 369I2C1_ER_IRQHandler 370 B I2C1_ER_IRQHandler 371 372 PUBWEAK I2C2_EV_IRQHandler 373 SECTION .text:CODE:REORDER(1) 374I2C2_EV_IRQHandler 375 B I2C2_EV_IRQHandler 376 377 PUBWEAK I2C2_ER_IRQHandler 378 SECTION .text:CODE:REORDER(1) 379I2C2_ER_IRQHandler 380 B I2C2_ER_IRQHandler 381 382 PUBWEAK SPI1_IRQHandler 383 SECTION .text:CODE:REORDER(1) 384SPI1_IRQHandler 385 B SPI1_IRQHandler 386 387 PUBWEAK SPI2_IRQHandler 388 SECTION .text:CODE:REORDER(1) 389SPI2_IRQHandler 390 B SPI2_IRQHandler 391 392 PUBWEAK USART1_IRQHandler 393 SECTION .text:CODE:REORDER(1) 394USART1_IRQHandler 395 B USART1_IRQHandler 396 397 PUBWEAK USART2_IRQHandler 398 SECTION .text:CODE:REORDER(1) 399USART2_IRQHandler 400 B USART2_IRQHandler 401 402 PUBWEAK USART3_IRQHandler 403 SECTION .text:CODE:REORDER(1) 404USART3_IRQHandler 405 B USART3_IRQHandler 406 407 PUBWEAK EXTI15_10_IRQHandler 408 SECTION .text:CODE:REORDER(1) 409EXTI15_10_IRQHandler 410 B EXTI15_10_IRQHandler 411 412 PUBWEAK RTCAlarm_IRQHandler 413 SECTION .text:CODE:REORDER(1) 414RTCAlarm_IRQHandler 415 B RTCAlarm_IRQHandler 416 417 PUBWEAK USBWakeUp_IRQHandler 418 SECTION .text:CODE:REORDER(1) 419USBWakeUp_IRQHandler 420 B USBWakeUp_IRQHandler 421 422 PUBWEAK TIM8_BRK_IRQHandler 423 SECTION .text:CODE:REORDER(1) 424TIM8_BRK_IRQHandler 425 B TIM8_BRK_IRQHandler 426 427 PUBWEAK TIM8_UP_IRQHandler 428 SECTION .text:CODE:REORDER(1) 429TIM8_UP_IRQHandler 430 B TIM8_UP_IRQHandler 431 432 PUBWEAK TIM8_TRG_COM_IRQHandler 433 SECTION .text:CODE:REORDER(1) 434TIM8_TRG_COM_IRQHandler 435 B TIM8_TRG_COM_IRQHandler 436 437 PUBWEAK TIM8_CC_IRQHandler 438 SECTION .text:CODE:REORDER(1) 439TIM8_CC_IRQHandler 440 B TIM8_CC_IRQHandler 441 442 PUBWEAK ADC3_IRQHandler 443 SECTION .text:CODE:REORDER(1) 444ADC3_IRQHandler 445 B ADC3_IRQHandler 446 447 PUBWEAK FSMC_IRQHandler 448 SECTION .text:CODE:REORDER(1) 449FSMC_IRQHandler 450 B FSMC_IRQHandler 451 452 PUBWEAK SDIO_IRQHandler 453 SECTION .text:CODE:REORDER(1) 454SDIO_IRQHandler 455 B SDIO_IRQHandler 456 457 PUBWEAK TIM5_IRQHandler 458 SECTION .text:CODE:REORDER(1) 459TIM5_IRQHandler 460 B TIM5_IRQHandler 461 462 PUBWEAK SPI3_IRQHandler 463 SECTION .text:CODE:REORDER(1) 464SPI3_IRQHandler 465 B SPI3_IRQHandler 466 467 PUBWEAK UART4_IRQHandler 468 SECTION .text:CODE:REORDER(1) 469UART4_IRQHandler 470 B UART4_IRQHandler 471 472 PUBWEAK UART5_IRQHandler 473 SECTION .text:CODE:REORDER(1) 474UART5_IRQHandler 475 B UART5_IRQHandler 476 477 PUBWEAK TIM6_IRQHandler 478 SECTION .text:CODE:REORDER(1) 479TIM6_IRQHandler 480 B TIM6_IRQHandler 481 482 PUBWEAK TIM7_IRQHandler 483 SECTION .text:CODE:REORDER(1) 484TIM7_IRQHandler 485 B TIM7_IRQHandler 486 487 PUBWEAK DMA2_Channel1_IRQHandler 488 SECTION .text:CODE:REORDER(1) 489DMA2_Channel1_IRQHandler 490 B DMA2_Channel1_IRQHandler 491 492 PUBWEAK DMA2_Channel2_IRQHandler 493 SECTION .text:CODE:REORDER(1) 494DMA2_Channel2_IRQHandler 495 B DMA2_Channel2_IRQHandler 496 497 PUBWEAK DMA2_Channel3_IRQHandler 498 SECTION .text:CODE:REORDER(1) 499DMA2_Channel3_IRQHandler 500 B DMA2_Channel3_IRQHandler 501 502 PUBWEAK DMA2_Channel4_5_IRQHandler 503 SECTION .text:CODE:REORDER(1) 504DMA2_Channel4_5_IRQHandler 505 B DMA2_Channel4_5_IRQHandler 506 507 508 END 509 510/******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/ 511