# 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 .