1;* File Name : Startup_ACM32F0x0.s 2;* Version : V1.0.0 3;* Date : 2020 4;* Description : ACM32F0x0 Devices vector table 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 address 9;* - Configure the clock system 10;* - Branches to __main in the C library (which eventually 11;* calls main()). 12;* After Reset the SC000 processor is in Thread mode, 13;* priority is Privileged, and the Stack is set to Main. 14;******************************************************************************* 15 16Stack_Size EQU 0x00000800 17Heap_Size EQU 0x00000000 18 19 AREA STACK, NOINIT, READWRITE, ALIGN=3 20Stack_Mem SPACE Stack_Size 21__initial_sp 22 23 AREA HEAP, NOINIT, READWRITE, ALIGN=3 24__heap_base 25Heap_Mem SPACE Heap_Size 26__heap_limit 27 28 PRESERVE8 29 THUMB 30 31; Vector Table Mapped to Address 0 at Reset 32 33 AREA RESET, DATA, READONLY 34 EXPORT __Vectors 35 36__Vectors 37 DCD __initial_sp ; Top of Stack 38 DCD Reset_Handler ; Reset Handler 39 DCD NMI_Handler ; NMI Handler 40 DCD HardFault_Handler ; Hard Fault Handler 41 DCD MemManage_Handler ; MPU Fault Handler 42 DCD 0 ; Reserved 43 DCD 0 ; Reserved 44 DCD 0 ; Reserved 45 DCD 0 ; Reserved 46 DCD 0 ; Reserved 47 DCD 0 ; Reserved 48 DCD SVC_Handler ; SVCall Handler 49 DCD 0 ; Reserved 50 DCD 0 ; Reserved 51 DCD PendSV_Handler ; PendSV Handler 52 DCD SysTick_Handler ; SysTick Handler 53 54 ; External Interrupts 55 DCD WDT_IRQHandler ; 0: WDT_IRQHandler 56 DCD RTC_IRQHandler ; 1: RTC_IRQHandler 57 DCD EFC_IRQHandler ; 2: EFC_IRQHandler 58 DCD GPIOAB_IRQHandler ; 3: GPIOAB_IRQHandler 59 DCD GPIOCD_IRQHandler ; 4: GPIOCD_IRQHandler 60 DCD EXTI_IRQHandler ; 5: EXTI_IRQHandler 61 DCD SRAM_PARITY_IRQHandler ; 6: SRAM_PARITY_IRQHandler 62 DCD CLKRDY_IRQHandler ; 7: CLKRDY_IRQHandler 63 DCD LCD_IRQHandler ; 8: LCD_IRQHandler 64 DCD DMA_IRQHandler ; 9: DMA_IRQHandler 65 DCD UART3_IRQHandler ; 10: UART3_IRQHandler 66 DCD TKEY_IRQHandler ; 11: TKEY_IRQHandler 67 DCD ADC_IRQHandler ; 12: ADC_IRQHandler 68 DCD TIM1_BRK_UP_TRG_COM_IRQHandler ; 13: TIM1_BRK_UP_TRG_COM_IRQHandler 69 DCD TIM1_CC_IRQHandler ; 14: TIM1_CC_IRQHandler 70 DCD RSV_IRQHandler ; 15: Reserved 71 DCD TIM3_IRQHandler ; 16: TIM3_IRQHandler 72 DCD TIM6_IRQHandler ; 17: TIM6_IRQHandler 73 DCD RSV_IRQHandler ; 18: Reserved 74 DCD TIM14_IRQHandler ; 19: TIM14_IRQHandler 75 DCD TIM15_IRQHandler ; 20: TIM15_IRQHandler 76 DCD TIM16_IRQHandler ; 21: TIM16_IRQHandler 77 DCD TIM17_IRQHandler ; 22: TIM17_IRQHandler 78 DCD I2C1_IRQHandler ; 23: I2C1_IRQHandler 79 DCD I2C2_IRQHandler ; 24: I2C2_IRQHandler 80 DCD SPI1_IRQHandler ; 25: SPI1_IRQHandler 81 DCD SPI2_IRQHandler ; 26: SPI2_IRQHandler 82 DCD UART1_IRQHandler ; 27: UART1_IRQHandler 83 DCD UART2_IRQHandler ; 28: UART2_IRQHandler 84 DCD LPUART_IRQHandler ; 29: LPUART_IRQHandler 85 DCD CAN1_IRQHandler ; 30: CAN1_IRQHandler 86 DCD AES_IRQHandler ; 31: AES_IRQHandler 87 88 AREA |.text|, CODE, READONLY 89 90Reset_Handler PROC 91 EXPORT Reset_Handler [WEAK] 92 IMPORT __main 93 LDR R0, =__main 94 BX R0 95 ENDP 96 97 98NMI_Handler PROC 99 EXPORT NMI_Handler [WEAK] 100 B . 101 ENDP 102HardFault_Handler PROC 103 EXPORT HardFault_Handler [WEAK] 104 B . 105 ENDP 106MemManage_Handler PROC 107 EXPORT MemManage_Handler [WEAK] 108 B . 109 ENDP 110SVC_Handler PROC 111 EXPORT SVC_Handler [WEAK] 112 B . 113 ENDP 114PendSV_Handler PROC 115 EXPORT PendSV_Handler [WEAK] 116 B . 117 ENDP 118SysTick_Handler PROC 119 EXPORT SysTick_Handler [WEAK] 120 B . 121 ENDP 122 123Default_Handler PROC 124 EXPORT WDT_IRQHandler [WEAK] 125 EXPORT RTC_IRQHandler [WEAK] 126 EXPORT EFC_IRQHandler [WEAK] 127 EXPORT GPIOAB_IRQHandler [WEAK] 128 EXPORT GPIOCD_IRQHandler [WEAK] 129 EXPORT EXTI_IRQHandler [WEAK] 130 EXPORT SRAM_PARITY_IRQHandler [WEAK] 131 EXPORT CLKRDY_IRQHandler [WEAK] 132 EXPORT LCD_IRQHandler [WEAK] 133 EXPORT DMA_IRQHandler [WEAK] 134 EXPORT UART3_IRQHandler [WEAK] 135 EXPORT TKEY_IRQHandler [WEAK] 136 EXPORT ADC_IRQHandler [WEAK] 137 EXPORT TIM1_BRK_UP_TRG_COM_IRQHandler [WEAK] 138 EXPORT TIM1_CC_IRQHandler [WEAK] 139 EXPORT TIM3_IRQHandler [WEAK] 140 EXPORT TIM6_IRQHandler [WEAK] 141 EXPORT TIM14_IRQHandler [WEAK] 142 EXPORT TIM15_IRQHandler [WEAK] 143 EXPORT TIM16_IRQHandler [WEAK] 144 EXPORT TIM17_IRQHandler [WEAK] 145 EXPORT I2C1_IRQHandler [WEAK] 146 EXPORT I2C2_IRQHandler [WEAK] 147 EXPORT SPI1_IRQHandler [WEAK] 148 EXPORT SPI2_IRQHandler [WEAK] 149 EXPORT UART1_IRQHandler [WEAK] 150 EXPORT UART2_IRQHandler [WEAK] 151 EXPORT LPUART_IRQHandler [WEAK] 152 EXPORT CAN1_IRQHandler [WEAK] 153 EXPORT AES_IRQHandler [WEAK] 154 EXPORT RSV_IRQHandler [WEAK] 155WDT_IRQHandler 156RTC_IRQHandler 157EFC_IRQHandler 158GPIOAB_IRQHandler 159GPIOCD_IRQHandler 160EXTI_IRQHandler 161SRAM_PARITY_IRQHandler 162CLKRDY_IRQHandler 163LCD_IRQHandler 164DMA_IRQHandler 165UART3_IRQHandler 166TKEY_IRQHandler 167ADC_IRQHandler 168TIM1_BRK_UP_TRG_COM_IRQHandler 169TIM1_CC_IRQHandler 170TIM3_IRQHandler 171TIM6_IRQHandler 172TIM14_IRQHandler 173TIM15_IRQHandler 174TIM16_IRQHandler 175TIM17_IRQHandler 176I2C1_IRQHandler 177I2C2_IRQHandler 178SPI1_IRQHandler 179SPI2_IRQHandler 180UART1_IRQHandler 181UART2_IRQHandler 182LPUART_IRQHandler 183CAN1_IRQHandler 184AES_IRQHandler 185RSV_IRQHandler 186 B . 187 ENDP 188 189 ALIGN 190 191; User Initial Stack & Heap 192 193 IF :DEF:__MICROLIB 194 195 EXPORT __initial_sp 196 EXPORT __heap_base 197 EXPORT __heap_limit 198 199 ELSE 200 201 IMPORT __use_two_region_memory 202 EXPORT __user_initial_stackheap 203__user_initial_stackheap 204 205 LDR R0, = Heap_Mem 206 LDR R1, =(Stack_Mem + Stack_Size) 207 LDR R2, = (Heap_Mem + Heap_Size) 208 LDR R3, = Stack_Mem 209 BX LR 210 211 ALIGN 212 213 ENDIF 214 215 END 216