startup_apm32f10x_md.s 9.8 KB
Newer Older
A
abbcc 已提交
1
;/*!
2
; * @file        startup_apm32f10x_md.s
A
abbcc 已提交
3
; *
4
; * @brief       CMSIS Cortex-M3 based Core Device Startup File for Device startup_apm32f10x_md
A
abbcc 已提交
5
; *
6
; * @version     V1.0.2
A
abbcc 已提交
7
; *
8
; * @date        2022-01-05
A
abbcc 已提交
9
; *
10 11 12 13 14 15 16 17 18 19 20 21 22 23
; * @attention
; *
; *  Copyright (C) 2020-2022 Geehy Semiconductor
; *
; *  You may not use this file except in compliance with the
; *  GEEHY COPYRIGHT NOTICE (GEEHY SOFTWARE PACKAGE LICENSE).
; *
; *  The program is only for reference, which is distributed in the hope
; *  that it will be usefull and instructional for customers to develop
; *  their software. Unless required by applicable law or agreed to in
; *  writing, the program is distributed on an "AS IS" BASIS, WITHOUT
; *  ANY WARRANTY OR CONDITIONS OF ANY KIND, either express or implied.
; *  See the GEEHY SOFTWARE PACKAGE LICENSE for the governing permissions
; *  and limitations under the License.
A
abbcc 已提交
24 25
; */

26 27 28 29 30 31
;
<h> Stack Configuration
;
<o> Stack Size(in Bytes) < 0x0 - 0xFFFFFFFF: 8 >
;
< / h >
A
abbcc 已提交
32 33 34

Stack_Size      EQU     0x00000400

35 36 37
AREA    STACK, NOINIT, READWRITE, ALIGN = 3
        Stack_Mem       SPACE   Stack_Size
        __initial_sp
A
abbcc 已提交
38 39


40 41 42 43 44 45
        ;
<h> Heap Configuration
;
<o>  Heap Size(in Bytes) < 0x0 - 0xFFFFFFFF: 8 >
;
< / h >
A
abbcc 已提交
46 47 48

Heap_Size       EQU     0x00000200

49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193
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
DCD     WWDT_IRQHandler              ;
Window Watchdog
DCD     PVD_IRQHandler               ;
PVD through EINT Line detect
DCD     TAMPER_IRQHandler            ;
Tamper
DCD     RTC_IRQHandler               ;
RTC
DCD     FLASH_IRQHandler             ;
Flash
DCD     RCM_IRQHandler               ;
RCM
DCD     EINT0_IRQHandler             ;
EINT Line 0
DCD     EINT1_IRQHandler             ;
EINT Line 1
DCD     EINT2_IRQHandler             ;
EINT Line 2
DCD     EINT3_IRQHandler             ;
EINT Line 3
DCD     EINT4_IRQHandler             ;
EINT Line 4
DCD     DMA1_Channel1_IRQHandler     ;
DMA1 Channel 1
DCD     DMA1_Channel2_IRQHandler     ;
DMA1 Channel 2
DCD     DMA1_Channel3_IRQHandler     ;
DMA1 Channel 3
DCD     DMA1_Channel4_IRQHandler     ;
DMA1 Channel 4
DCD     DMA1_Channel5_IRQHandler     ;
DMA1 Channel 5
DCD     DMA1_Channel6_IRQHandler     ;
DMA1 Channel 6
DCD     DMA1_Channel7_IRQHandler     ;
DMA1 Channel 7
DCD     ADC1_2_IRQHandler            ;
ADC1_2
DCD     USBD1_HP_CAN1_TX_IRQHandler  ;
USBD1 High Priority or CAN1 TX
DCD     USBD1_LP_CAN1_RX0_IRQHandler ;
USBD1 Low  Priority or CAN1 RX0
DCD     CAN1_RX1_IRQHandler          ;
CAN1 RX1
DCD     CAN1_SCE_IRQHandler          ;
CAN1 SCE
DCD     EINT9_5_IRQHandler           ;
EINT Line 9..5
DCD     TMR1_BRK_IRQHandler          ;
TMR1 Break
DCD     TMR1_UP_IRQHandler           ;
TMR1 Update
DCD     TMR1_TRG_COM_IRQHandler      ;
TMR1 Trigger and Commutation
DCD     TMR1_CC_IRQHandler           ;
TMR1 Capture Compare
DCD     TMR2_IRQHandler              ;
TMR2
DCD     TMR3_IRQHandler              ;
TMR3
DCD     TMR4_IRQHandler              ;
TMR4
DCD     I2C1_EV_IRQHandler           ;
I2C1 Event
DCD     I2C1_ER_IRQHandler           ;
I2C1 Error
DCD     I2C2_EV_IRQHandler           ;
I2C2 Event
DCD     I2C2_ER_IRQHandler           ;
I2C2 Error
DCD     SPI1_IRQHandler              ;
SPI1
DCD     SPI2_IRQHandler              ;
SPI2
DCD     USART1_IRQHandler            ;
USART1
DCD     USART2_IRQHandler            ;
USART2
DCD     USART3_IRQHandler            ;
USART3
DCD     EINT15_10_IRQHandler         ;
EINT Line 15..10
DCD     RTCAlarm_IRQHandler          ;
RTC Alarm through EINT Line
DCD     USBDWakeUp_IRQHandler        ;
USBD Wakeup from suspend
DCD     FPU_IRQHandler               ;
FPU
DCD     QSPI_IRQHandler              ;
QSPI
DCD     USBD2_HP_IRQHandler          ;
USBD2 High Priority
DCD     USBD2_LP_IRQHandler          ;
USBD2 Low Priority
A
abbcc 已提交
194 195 196 197
__Vectors_End

__Vectors_Size  EQU  __Vectors_End - __Vectors

198
AREA    | .text |, CODE, READONLY
A
abbcc 已提交
199

200 201
;
Reset handler
A
abbcc 已提交
202
Reset_Handler    PROC
203 204 205 206 207 208 209 210 211 212 213
EXPORT  Reset_Handler               [WEAK]
IMPORT  __main
IMPORT  SystemInit
LDR     R0, = SystemInit
              BLX     R0
              LDR     R0, = __main
                            BX      R0
                            ENDP

                            ;
Dummy Exception Handlers(infinite loops which can be modified)
A
abbcc 已提交
214 215

NMI_Handler     PROC
216 217 218
EXPORT  NMI_Handler                  [WEAK]
B       .
ENDP
A
abbcc 已提交
219
HardFault_Handler\
220 221 222 223
PROC
EXPORT  HardFault_Handler            [WEAK]
B       .
ENDP
A
abbcc 已提交
224
MemManage_Handler\
225 226 227 228
PROC
EXPORT  MemManage_Handler            [WEAK]
B       .
ENDP
A
abbcc 已提交
229
BusFault_Handler\
230 231 232 233
PROC
EXPORT  BusFault_Handler             [WEAK]
B       .
ENDP
A
abbcc 已提交
234
UsageFault_Handler\
235 236 237 238
PROC
EXPORT  UsageFault_Handler           [WEAK]
B       .
ENDP
A
abbcc 已提交
239
SVC_Handler     PROC
240 241 242
EXPORT  SVC_Handler                  [WEAK]
B       .
ENDP
A
abbcc 已提交
243
DebugMon_Handler\
244 245 246 247
PROC
EXPORT  DebugMon_Handler             [WEAK]
B       .
ENDP
A
abbcc 已提交
248
PendSV_Handler  PROC
249 250 251
EXPORT  PendSV_Handler               [WEAK]
B       .
ENDP
A
abbcc 已提交
252
SysTick_Handler PROC
253 254 255
EXPORT  SysTick_Handler              [WEAK]
B       .
ENDP
A
abbcc 已提交
256 257 258

Default_Handler PROC

259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305
EXPORT  WWDT_IRQHandler              [WEAK]
EXPORT  PVD_IRQHandler               [WEAK]
EXPORT  TAMPER_IRQHandler            [WEAK]
EXPORT  RTC_IRQHandler               [WEAK]
EXPORT  FLASH_IRQHandler             [WEAK]
EXPORT  RCM_IRQHandler               [WEAK]
EXPORT  EINT0_IRQHandler             [WEAK]
EXPORT  EINT1_IRQHandler             [WEAK]
EXPORT  EINT2_IRQHandler             [WEAK]
EXPORT  EINT3_IRQHandler             [WEAK]
EXPORT  EINT4_IRQHandler             [WEAK]
EXPORT  DMA1_Channel1_IRQHandler     [WEAK]
EXPORT  DMA1_Channel2_IRQHandler     [WEAK]
EXPORT  DMA1_Channel3_IRQHandler     [WEAK]
EXPORT  DMA1_Channel4_IRQHandler     [WEAK]
EXPORT  DMA1_Channel5_IRQHandler     [WEAK]
EXPORT  DMA1_Channel6_IRQHandler     [WEAK]
EXPORT  DMA1_Channel7_IRQHandler     [WEAK]
EXPORT  ADC1_2_IRQHandler            [WEAK]
EXPORT  USBD1_HP_CAN1_TX_IRQHandler  [WEAK]
EXPORT  USBD1_LP_CAN1_RX0_IRQHandler [WEAK]
EXPORT  CAN1_RX1_IRQHandler          [WEAK]
EXPORT  CAN1_SCE_IRQHandler          [WEAK]
EXPORT  EINT9_5_IRQHandler           [WEAK]
EXPORT  TMR1_BRK_IRQHandler          [WEAK]
EXPORT  TMR1_UP_IRQHandler           [WEAK]
EXPORT  TMR1_TRG_COM_IRQHandler      [WEAK]
EXPORT  TMR1_CC_IRQHandler           [WEAK]
EXPORT  TMR2_IRQHandler              [WEAK]
EXPORT  TMR3_IRQHandler              [WEAK]
EXPORT  TMR4_IRQHandler              [WEAK]
EXPORT  I2C1_EV_IRQHandler           [WEAK]
EXPORT  I2C1_ER_IRQHandler           [WEAK]
EXPORT  I2C2_EV_IRQHandler           [WEAK]
EXPORT  I2C2_ER_IRQHandler           [WEAK]
EXPORT  SPI1_IRQHandler              [WEAK]
EXPORT  SPI2_IRQHandler              [WEAK]
EXPORT  USART1_IRQHandler            [WEAK]
EXPORT  USART2_IRQHandler            [WEAK]
EXPORT  USART3_IRQHandler            [WEAK]
EXPORT  EINT15_10_IRQHandler         [WEAK]
EXPORT  RTCAlarm_IRQHandler          [WEAK]
EXPORT  USBDWakeUp_IRQHandler        [WEAK]
EXPORT  FPU_IRQHandler               [WEAK]
EXPORT  QSPI_IRQHandler              [WEAK]
EXPORT  USBD2_HP_IRQHandler          [WEAK]
EXPORT  USBD2_LP_IRQHandler          [WEAK]
A
abbcc 已提交
306 307 308 309 310

WWDT_IRQHandler
PVD_IRQHandler
TAMPER_IRQHandler
RTC_IRQHandler
311
FLASH_IRQHandler
A
abbcc 已提交
312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353
RCM_IRQHandler
EINT0_IRQHandler
EINT1_IRQHandler
EINT2_IRQHandler
EINT3_IRQHandler
EINT4_IRQHandler
DMA1_Channel1_IRQHandler
DMA1_Channel2_IRQHandler
DMA1_Channel3_IRQHandler
DMA1_Channel4_IRQHandler
DMA1_Channel5_IRQHandler
DMA1_Channel6_IRQHandler
DMA1_Channel7_IRQHandler
ADC1_2_IRQHandler
USBD1_HP_CAN1_TX_IRQHandler
USBD1_LP_CAN1_RX0_IRQHandler
CAN1_RX1_IRQHandler
CAN1_SCE_IRQHandler
EINT9_5_IRQHandler
TMR1_BRK_IRQHandler
TMR1_UP_IRQHandler
TMR1_TRG_COM_IRQHandler
TMR1_CC_IRQHandler
TMR2_IRQHandler
TMR3_IRQHandler
TMR4_IRQHandler
I2C1_EV_IRQHandler
I2C1_ER_IRQHandler
I2C2_EV_IRQHandler
I2C2_ER_IRQHandler
SPI1_IRQHandler
SPI2_IRQHandler
USART1_IRQHandler
USART2_IRQHandler
USART3_IRQHandler
EINT15_10_IRQHandler
RTCAlarm_IRQHandler
USBDWakeUp_IRQHandler
FPU_IRQHandler
QSPI_IRQHandler
USBD2_HP_IRQHandler
USBD2_LP_IRQHandler
354
B       .
A
abbcc 已提交
355

356
ENDP
A
abbcc 已提交
357

358
ALIGN
A
abbcc 已提交
359

360 361 362 363 364 365 366 367 368
;
*******************************************************************************
;
User Stack and Heap initialization
;
*******************************************************************************
IF      :
DEF:
__MICROLIB
A
abbcc 已提交
369

370 371 372
EXPORT  __initial_sp
EXPORT  __heap_base
EXPORT  __heap_limit
A
abbcc 已提交
373

374
ELSE
A
abbcc 已提交
375

376 377
IMPORT  __use_two_region_memory
EXPORT  __user_initial_stackheap
A
abbcc 已提交
378 379 380

__user_initial_stackheap

381 382 383 384 385
LDR     R0, = Heap_Mem
              LDR     R1, = (Stack_Mem + Stack_Size)
                            LDR     R2, = (Heap_Mem  + Heap_Size)
                                    LDR     R3, = Stack_Mem
                                            BX      LR
A
abbcc 已提交
386

387
                                            ALIGN
A
abbcc 已提交
388

389
                                            ENDIF
A
abbcc 已提交
390

391
                                            END
A
abbcc 已提交
392

393 394
                                            ;
*******************************END OF FILE ************************************