forked from mirror/uv-k5-firmware
254 lines
3.2 KiB
ArmAsm
254 lines
3.2 KiB
ArmAsm
# Copyright 2023 Dual Tachyon
|
|
# https://github.com/DualTachyon
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
.cpu cortex-m0
|
|
.fpu softvfp
|
|
.thumb
|
|
|
|
.global Stack
|
|
.global HandlerReset
|
|
.global Main
|
|
|
|
.global OVERLAY_Install
|
|
.global BOARD_FLASH_Init
|
|
.global BSS_Init
|
|
|
|
.global SystickHandler
|
|
.weak SystickHandler
|
|
|
|
.section .text.isr
|
|
|
|
Stack:
|
|
.long 0x20003FF0
|
|
Reset:
|
|
.long HandlerReset + 1
|
|
NMI:
|
|
.long HandlerNMI + 1
|
|
HardFault:
|
|
.long HandlerHardFault + 1
|
|
Reserved_10:
|
|
.long 0
|
|
Reserved_14:
|
|
.long 0
|
|
Reserved_18:
|
|
.long 0
|
|
Reserved_1C:
|
|
.long 0
|
|
Reserved_20:
|
|
.long 0
|
|
Reserved_24:
|
|
.long 0
|
|
Reserved_28:
|
|
.long 0
|
|
SVCall:
|
|
.long HandlerSVCall + 1
|
|
Reserved_30:
|
|
.long 0
|
|
Reserved_34:
|
|
.long 0
|
|
PendSV:
|
|
.long HandlerPendSV + 1
|
|
SysTick:
|
|
.long SystickHandler + 1
|
|
WWDT:
|
|
.long HandlerWWDT + 1
|
|
IWDT:
|
|
.long HandlerIWDT + 1
|
|
RTC:
|
|
.long HandlerRTC + 1
|
|
DMA:
|
|
.long HandlerDMA + 1
|
|
SARADC:
|
|
.long HandlerSARADC + 1
|
|
TIMER_BASE0:
|
|
.long HandlerTIMER_BASE0 + 1
|
|
TIMER_BASE1:
|
|
.long HandlerTIMER_BASE1 + 1
|
|
TIMER_PLUS0:
|
|
.long HandlerTIMER_PLUS0 + 1
|
|
TIMER_PLUS1:
|
|
.long HandlerTIMER_PLUS1 + 1
|
|
PWM_BASE0:
|
|
.long HandlerPWM_BASE0 + 1
|
|
PWM_BASE1:
|
|
.long HandlerPWM_BASE1 + 1
|
|
PWM_PLUS0:
|
|
.long HandlerPWM_PLUS0 + 1
|
|
PWM_PLUS1:
|
|
.long HandlerPWM_PLUS1 + 1
|
|
UART0:
|
|
.long HandlerUART0 + 1
|
|
UART1:
|
|
.long HandlerUART1 + 1
|
|
UART2:
|
|
.long HandlerUART2 + 1
|
|
SPI0:
|
|
.long HandlerSPI0 + 1
|
|
SPI1:
|
|
.long HandlerSPI1 + 1
|
|
IIC0:
|
|
.long HandlerIIC0 + 1
|
|
IIC1:
|
|
.long HandlerIIC1 + 1
|
|
CMP:
|
|
.long HandlerCMP + 1
|
|
TIMER_BASE2:
|
|
.long HandlerTIMER_BASE2 + 1
|
|
GPIOA5:
|
|
.long HandlerGPIOA5 + 1
|
|
GPIOA6:
|
|
.long HandlerGPIOA6 + 1
|
|
GPIOA7:
|
|
.long HandlerGPIOA7 + 1
|
|
GPIOB0:
|
|
.long HandlerGPIOB0 + 1
|
|
GPIOB1:
|
|
.long HandlerGPIOB1 + 1
|
|
GPIOC0:
|
|
.long HandlerGPIOC0 + 1
|
|
GPIOC1:
|
|
.long HandlerGPIOC1 + 1
|
|
GPIOA:
|
|
.long HandlerGPIOA + 1
|
|
GPIOB:
|
|
.long HandlerGPIOB + 1
|
|
GPIOC:
|
|
.long HandlerGPIOC + 1
|
|
|
|
.section .text
|
|
|
|
HandlerNMI:
|
|
b .
|
|
|
|
HandlerHardFault:
|
|
b .
|
|
|
|
HandlerSVCall:
|
|
b .
|
|
|
|
HandlerPendSV:
|
|
b .
|
|
|
|
SystickHandler:
|
|
bx lr
|
|
|
|
HandlerWWDT:
|
|
b .
|
|
|
|
HandlerIWDT:
|
|
b .
|
|
|
|
HandlerRTC:
|
|
b .
|
|
|
|
HandlerDMA:
|
|
b .
|
|
|
|
HandlerSARADC:
|
|
b .
|
|
|
|
HandlerTIMER_BASE0:
|
|
b .
|
|
|
|
HandlerTIMER_BASE1:
|
|
b .
|
|
|
|
HandlerTIMER_PLUS0:
|
|
b .
|
|
|
|
HandlerTIMER_PLUS1:
|
|
b .
|
|
|
|
HandlerPWM_BASE0:
|
|
b .
|
|
|
|
HandlerPWM_BASE1:
|
|
b .
|
|
|
|
HandlerPWM_PLUS0:
|
|
b .
|
|
|
|
HandlerPWM_PLUS1:
|
|
b .
|
|
|
|
HandlerUART0:
|
|
b .
|
|
|
|
HandlerUART1:
|
|
b .
|
|
|
|
HandlerUART2:
|
|
b .
|
|
|
|
HandlerSPI0:
|
|
b .
|
|
|
|
HandlerSPI1:
|
|
b .
|
|
|
|
HandlerIIC0:
|
|
b .
|
|
|
|
HandlerIIC1:
|
|
b .
|
|
|
|
HandlerCMP:
|
|
b .
|
|
|
|
HandlerTIMER_BASE2:
|
|
b .
|
|
|
|
HandlerGPIOA5:
|
|
b .
|
|
|
|
HandlerGPIOA6:
|
|
b .
|
|
|
|
HandlerGPIOA7:
|
|
b .
|
|
|
|
HandlerGPIOB0:
|
|
b .
|
|
|
|
HandlerGPIOB1:
|
|
b .
|
|
|
|
HandlerGPIOC0:
|
|
b .
|
|
|
|
HandlerGPIOC1:
|
|
b .
|
|
|
|
HandlerGPIOA:
|
|
b .
|
|
|
|
HandlerGPIOB:
|
|
b .
|
|
|
|
HandlerGPIOC:
|
|
b .
|
|
|
|
HandlerReset:
|
|
ldr r0, =0x20003FF0
|
|
mov sp, r0
|
|
bl DATA_Init
|
|
bl BSS_Init
|
|
#if defined(ENABLE_OVERLAY)
|
|
bl BOARD_FLASH_Init
|
|
#endif
|
|
bl Main
|
|
b .
|
|
|