;******************************************************************************************************************************************
; 文件名称: startup_SWM341.s
; 功能说明: SWM341单片机的启动文件
; 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
; 注意事项:
; 版本日期: V1.1.0 2017年10月25日
; 升级记录:
;
;
;******************************************************************************************************************************************
; @attention
;
; THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
; REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
; FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
; OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN-
; -ECTION WITH THEIR PRODUCTS.
;
; COPYRIGHT 2012 Synwit Technology
;******************************************************************************************************************************************
; Amount of memory (in bytes) allocated for Stack
; Tailor this value to your application needs
; Stack Configuration
; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
;
Stack_Size EQU 0x00004000
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 0x00000000
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 UART0_Handler
DCD UART1_Handler
DCD TIMR0_Handler
DCD TIMR1_Handler
DCD DMA_Handler
DCD SPI0_Handler
DCD PWM0_Handler
DCD WDT_Handler
DCD UART2_Handler
DCD PWM1_Handler
DCD ADC0_Handler
DCD BTIMR0_Handler
DCD HALL0_Handler
DCD PWM2_Handler
DCD PWMBRK_Handler
DCD I2C0_Handler
DCD CAN0_Handler
DCD SPI1_Handler
DCD RTC_Handler
DCD PWM3_Handler
DCD TIMR2_Handler
DCD UART3_Handler
DCD TIMR3_Handler
DCD ADC1_Handler
DCD BOD_Handler
DCD CORDIC_Handler
DCD BTIMR1_Handler
DCD PWM4_Handler
DCD HALL3_Handler
DCD BTIMR2_Handler
DCD I2C1_Handler
DCD BTIMR3_Handler
DCD ACMP_Handler
DCD XTALSTOP_Handler
DCD FSPI_Handler
DCD GPIOA_Handler
DCD GPIOB_Handler
DCD GPIOC_Handler
DCD GPIOD_Handler
DCD GPIOM_Handler
DCD GPION_Handler
DCD GPIOA0_Handler
DCD GPIOA1_Handler
DCD GPIOA5_Handler
DCD GPIOA6_Handler
DCD GPIOA10_Handler
DCD GPIOA11_Handler
DCD GPIOA12_Handler
DCD GPIOA13_Handler
DCD GPIOB0_Handler
DCD GPIOB1_Handler
DCD GPIOB2_Handler
DCD GPIOC0_Handler
DCD GPIOC1_Handler
DCD GPIOC2_Handler
DCD GPIOC3_Handler
DCD GPIOC4_Handler
DCD GPIOD3_Handler
DCD GPIOD4_Handler
DCD GPIOD5_Handler
DCD GPIOD6_Handler
DCD GPIOD7_Handler
DCD GPIOD8_Handler
DCD GPIOC9_Handler
DCD GPIOC10_Handler
DCD GPIOC11_Handler
DCD GPIOC12_Handler
DCD GPIOM0_Handler
DCD GPIOM1_Handler
DCD GPIOM2_Handler
DCD GPIOM3_Handler
DCD GPIOM4_Handler
DCD DIV_Handler
DCD LCD_Handler
DCD GPIOE_Handler
DCD JPEG_Handler
DCD SDIO_Handler
DCD USB_Handler
DCD CAN1_Handler
DCD TIMR4_Handler
DCD BTIMR4_Handler
DCD BTIMR5_Handler
DCD BTIMR6_Handler
DCD BTIMR7_Handler
DCD BTIMR8_Handler
DCD BTIMR9_Handler
DCD BTIMR10_Handler
DCD BTIMR11_Handler
DCD DMA2D_Handler
DCD QEI_Handler
__Vectors_End
__Vectors_Size EQU __Vectors_End - __Vectors
AREA |.text|, CODE, READONLY
Reset_Handler PROC
EXPORT Reset_Handler [WEAK]
IMPORT __main
IMPORT FPU_Enable
LDR R0, =FPU_Enable
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
UART0_Handler PROC
EXPORT UART0_Handler [WEAK]
B .
ENDP
UART1_Handler PROC
EXPORT UART1_Handler [WEAK]
B .
ENDP
TIMR0_Handler PROC
EXPORT TIMR0_Handler [WEAK]
B .
ENDP
TIMR1_Handler PROC
EXPORT TIMR1_Handler [WEAK]
B .
ENDP
DMA_Handler PROC
EXPORT DMA_Handler [WEAK]
B .
ENDP
SPI0_Handler PROC
EXPORT SPI0_Handler [WEAK]
B .
ENDP
PWM0_Handler PROC
EXPORT PWM0_Handler [WEAK]
B .
ENDP
WDT_Handler PROC
EXPORT WDT_Handler [WEAK]
B .
ENDP
UART2_Handler PROC
EXPORT UART2_Handler [WEAK]
B .
ENDP
PWM1_Handler PROC
EXPORT PWM1_Handler [WEAK]
B .
ENDP
ADC0_Handler PROC
EXPORT ADC0_Handler [WEAK]
B .
ENDP
BTIMR0_Handler PROC
EXPORT BTIMR0_Handler [WEAK]
B .
ENDP
HALL0_Handler PROC
EXPORT HALL0_Handler [WEAK]
B .
ENDP
PWM2_Handler PROC
EXPORT PWM2_Handler [WEAK]
B .
ENDP
PWMBRK_Handler PROC
EXPORT PWMBRK_Handler [WEAK]
B .
ENDP
I2C0_Handler PROC
EXPORT I2C0_Handler [WEAK]
B .
ENDP
CAN0_Handler PROC
EXPORT CAN0_Handler [WEAK]
B .
ENDP
SPI1_Handler PROC
EXPORT SPI1_Handler [WEAK]
B .
ENDP
RTC_Handler PROC
EXPORT RTC_Handler [WEAK]
B .
ENDP
PWM3_Handler PROC
EXPORT PWM3_Handler [WEAK]
B .
ENDP
TIMR2_Handler PROC
EXPORT TIMR2_Handler [WEAK]
B .
ENDP
UART3_Handler PROC
EXPORT UART3_Handler [WEAK]
B .
ENDP
TIMR3_Handler PROC
EXPORT TIMR3_Handler [WEAK]
B .
ENDP
ADC1_Handler PROC
EXPORT ADC1_Handler [WEAK]
B .
ENDP
BOD_Handler PROC
EXPORT BOD_Handler [WEAK]
B .
ENDP
CORDIC_Handler PROC
EXPORT CORDIC_Handler [WEAK]
B .
ENDP
BTIMR1_Handler PROC
EXPORT BTIMR1_Handler [WEAK]
B .
ENDP
PWM4_Handler PROC
EXPORT PWM4_Handler [WEAK]
B .
ENDP
HALL3_Handler PROC
EXPORT HALL3_Handler [WEAK]
B .
ENDP
BTIMR2_Handler PROC
EXPORT BTIMR2_Handler [WEAK]
B .
ENDP
I2C1_Handler PROC
EXPORT I2C1_Handler [WEAK]
B .
ENDP
BTIMR3_Handler PROC
EXPORT BTIMR3_Handler [WEAK]
B .
ENDP
ACMP_Handler PROC
EXPORT ACMP_Handler [WEAK]
B .
ENDP
XTALSTOP_Handler PROC
EXPORT XTALSTOP_Handler [WEAK]
B .
ENDP
FSPI_Handler PROC
EXPORT FSPI_Handler [WEAK]
B .
ENDP
GPIOA_Handler PROC
EXPORT GPIOA_Handler [WEAK]
B .
ENDP
GPIOB_Handler PROC
EXPORT GPIOB_Handler [WEAK]
B .
ENDP
GPIOC_Handler PROC
EXPORT GPIOC_Handler [WEAK]
B .
ENDP
GPIOD_Handler PROC
EXPORT GPIOD_Handler [WEAK]
B .
ENDP
GPIOM_Handler PROC
EXPORT GPIOM_Handler [WEAK]
B .
ENDP
GPION_Handler PROC
EXPORT GPION_Handler [WEAK]
B .
ENDP
GPIOA0_Handler PROC
EXPORT GPIOA0_Handler [WEAK]
B .
ENDP
GPIOA1_Handler PROC
EXPORT GPIOA1_Handler [WEAK]
B .
ENDP
GPIOA5_Handler PROC
EXPORT GPIOA5_Handler [WEAK]
B .
ENDP
GPIOA6_Handler PROC
EXPORT GPIOA6_Handler [WEAK]
B .
ENDP
GPIOA10_Handler PROC
EXPORT GPIOA10_Handler [WEAK]
B .
ENDP
GPIOA11_Handler PROC
EXPORT GPIOA11_Handler [WEAK]
B .
ENDP
GPIOA12_Handler PROC
EXPORT GPIOA12_Handler [WEAK]
B .
ENDP
GPIOA13_Handler PROC
EXPORT GPIOA13_Handler [WEAK]
B .
ENDP
GPIOB0_Handler PROC
EXPORT GPIOB0_Handler [WEAK]
B .
ENDP
GPIOB1_Handler PROC
EXPORT GPIOB1_Handler [WEAK]
B .
ENDP
GPIOB2_Handler PROC
EXPORT GPIOB2_Handler [WEAK]
B .
ENDP
GPIOC0_Handler PROC
EXPORT GPIOC0_Handler [WEAK]
B .
ENDP
GPIOC1_Handler PROC
EXPORT GPIOC1_Handler [WEAK]
B .
ENDP
GPIOC2_Handler PROC
EXPORT GPIOC2_Handler [WEAK]
B .
ENDP
GPIOC3_Handler PROC
EXPORT GPIOC3_Handler [WEAK]
B .
ENDP
GPIOC4_Handler PROC
EXPORT GPIOC4_Handler [WEAK]
B .
ENDP
GPIOD3_Handler PROC
EXPORT GPIOD3_Handler [WEAK]
B .
ENDP
GPIOD4_Handler PROC
EXPORT GPIOD4_Handler [WEAK]
B .
ENDP
GPIOD5_Handler PROC
EXPORT GPIOD5_Handler [WEAK]
B .
ENDP
GPIOD6_Handler PROC
EXPORT GPIOD6_Handler [WEAK]
B .
ENDP
GPIOD7_Handler PROC
EXPORT GPIOD7_Handler [WEAK]
B .
ENDP
GPIOD8_Handler PROC
EXPORT GPIOD8_Handler [WEAK]
B .
ENDP
GPIOC9_Handler PROC
EXPORT GPIOC9_Handler [WEAK]
B .
ENDP
GPIOC10_Handler PROC
EXPORT GPIOC10_Handler [WEAK]
B .
ENDP
GPIOC11_Handler PROC
EXPORT GPIOC11_Handler [WEAK]
B .
ENDP
GPIOC12_Handler PROC
EXPORT GPIOC12_Handler [WEAK]
B .
ENDP
GPIOM0_Handler PROC
EXPORT GPIOM0_Handler [WEAK]
B .
ENDP
GPIOM1_Handler PROC
EXPORT GPIOM1_Handler [WEAK]
B .
ENDP
GPIOM2_Handler PROC
EXPORT GPIOM2_Handler [WEAK]
B .
ENDP
GPIOM3_Handler PROC
EXPORT GPIOM3_Handler [WEAK]
B .
ENDP
GPIOM4_Handler PROC
EXPORT GPIOM4_Handler [WEAK]
B .
ENDP
DIV_Handler PROC
EXPORT DIV_Handler [WEAK]
B .
ENDP
LCD_Handler PROC
EXPORT LCD_Handler [WEAK]
B .
ENDP
GPIOE_Handler PROC
EXPORT GPIOE_Handler [WEAK]
B .
ENDP
JPEG_Handler PROC
EXPORT JPEG_Handler [WEAK]
B .
ENDP
SDIO_Handler PROC
EXPORT SDIO_Handler [WEAK]
B .
ENDP
USB_Handler PROC
EXPORT USB_Handler [WEAK]
B .
ENDP
CAN1_Handler PROC
EXPORT CAN1_Handler [WEAK]
B .
ENDP
TIMR4_Handler PROC
EXPORT TIMR4_Handler [WEAK]
B .
ENDP
BTIMR4_Handler PROC
EXPORT BTIMR4_Handler [WEAK]
B .
ENDP
BTIMR5_Handler PROC
EXPORT BTIMR5_Handler [WEAK]
B .
ENDP
BTIMR6_Handler PROC
EXPORT BTIMR6_Handler [WEAK]
B .
ENDP
BTIMR7_Handler PROC
EXPORT BTIMR7_Handler [WEAK]
B .
ENDP
BTIMR8_Handler PROC
EXPORT BTIMR8_Handler [WEAK]
B .
ENDP
BTIMR9_Handler PROC
EXPORT BTIMR9_Handler [WEAK]
B .
ENDP
BTIMR10_Handler PROC
EXPORT BTIMR10_Handler [WEAK]
B .
ENDP
BTIMR11_Handler PROC
EXPORT BTIMR11_Handler [WEAK]
B .
ENDP
DMA2D_Handler PROC
EXPORT DMA2D_Handler [WEAK]
B .
ENDP
QEI_Handler PROC
EXPORT QEI_Handler [WEAK]
B .
ENDP
ALIGN
;*******************************************************************************
; User Stack and Heap initialization
;*******************************************************************************
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
LDR R0, = Heap_Mem
LDR R1, = (Stack_Mem + Stack_Size)
LDR R2, = (Heap_Mem + Heap_Size)
LDR R3, = Stack_Mem
BX LR
ALIGN
ENDIF
END