;/**************************************************************************//** ; * @file startup_thm36.s ; * @brief Core Device Startup File for ; * thm36x2 Device Series ; * @version V5.00 ; * @date 02. March 2018 ; ******************************************************************************/ ;/* ;//-------- <<< Use Configuration Wizard in Context Menu >>> ------------------ ;*/ ; Stack Configuration ; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> ; Stack_Size EQU 0x00002000 AREA STACK, NOINIT, READWRITE, ALIGN=3 Stack_Mem SPACE Stack_Size __initial_sp ; Heap Configuration ; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> ; Heap_Size EQU 0x00000100 AREA HEAP, NOINIT, READWRITE, ALIGN=3 __heap_base Heap_Mem SPACE Heap_Size __heap_limit PRESERVE8 THUMB ; Vector Table Mapped to Address 0 at Reset AREA RESET, DATA, READONLY EXPORT __Vectors EXPORT __Vectors_End EXPORT __Vectors_Size __Vectors DCD __initial_sp ; Top of Stack DCD Reset_Handler ; Reset Handler DCD NMI_Handler ; NMI Handler DCD HardFault_Handler ; Hard Fault Handler DCD MemManage_Handler ; MPU Fault Handler DCD BusFault_Handler ; Bus Fault Handler DCD UsageFault_Handler ; Usage Fault Handler DCD 0 ; Reserved DCD 0 ; Reserved DCD 0 ; Reserved DCD 0 ; Reserved DCD SVC_Handler ; SVCall Handler DCD DebugMon_Handler ; Debug Monitor Handler DCD 0 ; Reserved DCD PendSV_Handler ; PendSV Handler DCD SysTick_Handler ; SysTick Handler ; External Interrupts ; ToDo: Add here the vectors for the device specific external interrupts handler DCD RCC_IRQHandler ; 0: Default DCD 0 ; 1: DCD 0 ; 2: DCD DMA_IRQHandler ; 3: DCD AHBMMU_IRQHandler ; 4: DCD 0 ; 5: DCD 0 ; 6: DCD MPU_IRQHandler ; 7: DCD 0 ; 8: DCD 0 ; 9: DCD SM4_IRQHandler ; 10: DCD AES_IRQHandler ; 11: DCD DES_IRQHandler ; 12: DCD PKE_IRQHandler ; 13: DCD 0 ; 14: DCD EGS_IRQHandler ; 15: DCD LD_IRQHandler ; 16: DCD TRNG_IRQHandler ; 17: DCD FD2_IRQHandler ; 18: DCD FD3_IRQHandler ; 19: DCD VB_SENSOR_IRQHandler ; 20: DCD ASH_IRQHandler ; 21: DCD WWDT_IRQHandler ; 22: DCD TIMER1_IRQHandler ; 23: DCD TIMER2_IRQHandler ; 24: DCD TIMER3_IRQHandler ; 25: DCD TIMER4_IRQHandler ; 26: DCD TIMER5_IRQHandler ; 27: DCD TIMER6_IRQHandler ; 28: DCD 0 ; 29: DCD 0 ; 30: DCD 0 ; 31: DCD 0 ; 32: 0 DCD Flash1_IRQHandler ; 33: 1 DCD 0 ; 34: 2 DCD 0 ; 35: 3 DCD GPIO_IRQHandler ; 36: 4 DCD SPI1_IRQHandler ; 37: 5 DCD SPI2_IRQHandler ; 38: 6 DCD SPI3_IRQHandler ; 39: 7 DCD UART1_IRQHandler ; 40: 8 DCD UART2_IRQHandler ; 41: 9 DCD UART3_IRQHandler ; 42: 10 DCD 0 ; 43: 11 DCD I2C_IRQHandler ; 44: 12 DCD ISO7816M1_IRQHandler ; 45: 13 DCD ISO7816M2_IRQHandler ; 46: 14 DCD ISO7816M3_IRQHandler ; 47: 15 DCD PWM1_IRQHandler ; 48: 16 DCD PWM2_IRQHandler ; 49: 17 DCD DCMI_IRQHandler ; 50: 18 DCD USB_IRQHandler ; 51: 19 DCD UART4_IRQHandler ; 52: 20 DCD ADC_IRQHandler ; 53: 21 DCD ISO7816S_IRQHandler ; 54: 22 DCD SWP_IRQHandler ; 55: 23 DCD 0 ; 56: 23 DCD FSP_IRQHandler ; 57: 23 DCD 0 ; 58: 23 DCD 0 ; 59: 23 DCD 0 ; 60: 23 DCD 0 ; 61: 23 DCD 0 ; 62: 23 DCD 0 ; 63: 23 DCD EXTI0_15_IRQHandler ; 64: 23 DCD EXTI16_31_IRQHandler ; 65: 23 DCD EXTI32_47_IRQHandler ; 66: 23 DCD EXTI48_63_IRQHandler ; 67: 23 DCD EXTI64_79_IRQHandler ; 68: 23 DCD EXTI80_IRQHandler ; 69: 23 DCD EXTI81_IRQHandler ; 70: 23 DCD EXTI82_IRQHandler ; 71: 23 DCD EXTI83_IRQHandler ; 72: 23 DCD EXTI84_IRQHandler ; 73: 23 DCD EXTI85_IRQHandler ; 74: 23 __Vectors_End __Vectors_Size EQU __Vectors_End - __Vectors AREA |.text|, CODE, READONLY ; Reset Handler Reset_Handler PROC EXPORT Reset_Handler [WEAK] IMPORT SystemInit IMPORT __main LDR R0, = SystemInit BLX R0 LDR R0, =__main BX R0 ENDP ; Dummy Exception Handlers (infinite loops which can be modified) NMI_Handler PROC EXPORT NMI_Handler [WEAK] B . ENDP HardFault_Handler\ PROC EXPORT HardFault_Handler [WEAK] B . ENDP MemManage_Handler\ PROC EXPORT MemManage_Handler [WEAK] B . ENDP BusFault_Handler\ PROC EXPORT BusFault_Handler [WEAK] B . ENDP UsageFault_Handler\ PROC EXPORT UsageFault_Handler [WEAK] B . ENDP SVC_Handler PROC EXPORT SVC_Handler [WEAK] B . ENDP DebugMon_Handler\ PROC EXPORT DebugMon_Handler [WEAK] B . ENDP PendSV_Handler PROC EXPORT PendSV_Handler [WEAK] B . ENDP SysTick_Handler PROC EXPORT SysTick_Handler [WEAK] B . ENDP Default_Handler PROC EXPORT RCC_IRQHandler [WEAK] EXPORT DMA_IRQHandler [WEAK] EXPORT AHBMMU_IRQHandler [WEAK] EXPORT MPU_IRQHandler [WEAK] EXPORT SM4_IRQHandler [WEAK] EXPORT AES_IRQHandler [WEAK] EXPORT DES_IRQHandler [WEAK] EXPORT PKE_IRQHandler [WEAK] EXPORT TRNG_IRQHandler [WEAK] EXPORT EGS_IRQHandler [WEAK] EXPORT LD_IRQHandler [WEAK] EXPORT FD2_IRQHandler [WEAK] EXPORT FD3_IRQHandler [WEAK] EXPORT VB_SENSOR_IRQHandler [WEAK] EXPORT ASH_IRQHandler [WEAK] EXPORT WWDT_IRQHandler [WEAK] EXPORT TIMER1_IRQHandler [WEAK] EXPORT TIMER2_IRQHandler [WEAK] EXPORT TIMER3_IRQHandler [WEAK] EXPORT TIMER4_IRQHandler [WEAK] EXPORT TIMER5_IRQHandler [WEAK] EXPORT TIMER6_IRQHandler [WEAK] EXPORT Flash1_IRQHandler [WEAK] EXPORT GPIO_IRQHandler [WEAK] EXPORT SPI1_IRQHandler [WEAK] EXPORT SPI2_IRQHandler [WEAK] EXPORT SPI3_IRQHandler [WEAK] EXPORT UART1_IRQHandler [WEAK] EXPORT UART2_IRQHandler [WEAK] EXPORT UART3_IRQHandler [WEAK] EXPORT UART4_IRQHandler [WEAK] EXPORT I2C_IRQHandler [WEAK] EXPORT ISO7816M1_IRQHandler [WEAK] EXPORT ISO7816M2_IRQHandler [WEAK] EXPORT ISO7816M3_IRQHandler [WEAK] EXPORT PWM1_IRQHandler [WEAK] EXPORT PWM2_IRQHandler [WEAK] EXPORT DCMI_IRQHandler [WEAK] EXPORT USB_IRQHandler [WEAK] EXPORT ADC_IRQHandler [WEAK] EXPORT ISO7816S_IRQHandler [WEAK] EXPORT FSP_IRQHandler [WEAK] EXPORT SWP_IRQHandler [WEAK] EXPORT EXTI0_15_IRQHandler [WEAK] EXPORT EXTI16_31_IRQHandler [WEAK] EXPORT EXTI32_47_IRQHandler [WEAK] EXPORT EXTI48_63_IRQHandler [WEAK] EXPORT EXTI64_79_IRQHandler [WEAK] EXPORT EXTI80_IRQHandler [WEAK] EXPORT EXTI81_IRQHandler [WEAK] EXPORT EXTI82_IRQHandler [WEAK] EXPORT EXTI83_IRQHandler [WEAK] EXPORT EXTI84_IRQHandler [WEAK] EXPORT EXTI85_IRQHandler [WEAK] RCC_IRQHandler DMA_IRQHandler AHBMMU_IRQHandler MPU_IRQHandler SM4_IRQHandler AES_IRQHandler DES_IRQHandler PKE_IRQHandler TRNG_IRQHandler EGS_IRQHandler LD_IRQHandler FD2_IRQHandler FD3_IRQHandler VB_SENSOR_IRQHandler ASH_IRQHandler WWDT_IRQHandler TIMER1_IRQHandler TIMER2_IRQHandler TIMER3_IRQHandler TIMER4_IRQHandler TIMER5_IRQHandler TIMER6_IRQHandler Flash1_IRQHandler GPIO_IRQHandler SPI1_IRQHandler SPI2_IRQHandler SPI3_IRQHandler UART1_IRQHandler UART2_IRQHandler UART3_IRQHandler UART4_IRQHandler I2C_IRQHandler ISO7816M1_IRQHandler ISO7816M2_IRQHandler ISO7816M3_IRQHandler PWM1_IRQHandler PWM2_IRQHandler DCMI_IRQHandler USB_IRQHandler ADC_IRQHandler ISO7816S_IRQHandler FSP_IRQHandler SWP_IRQHandler EXTI0_15_IRQHandler EXTI16_31_IRQHandler EXTI32_47_IRQHandler EXTI48_63_IRQHandler EXTI64_79_IRQHandler EXTI80_IRQHandler EXTI81_IRQHandler EXTI82_IRQHandler EXTI83_IRQHandler EXTI84_IRQHandler EXTI85_IRQHandler B . ENDP ALIGN ; User Initial Stack & Heap IF :DEF:__MICROLIB EXPORT __initial_sp EXPORT __heap_base EXPORT __heap_limit ELSE IMPORT __use_two_region_memory EXPORT __user_initial_stackheap __user_initial_stackheap PROC LDR R0, = Heap_Mem LDR R1, =(Stack_Mem + Stack_Size) LDR R2, = (Heap_Mem + Heap_Size) LDR R3, = Stack_Mem BX LR ENDP ALIGN ENDIF END