444 lines
14 KiB
ArmAsm
444 lines
14 KiB
ArmAsm
;******************** (C) COPYRIGHT 2022 LegendSemi *******************
|
|
;* 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, STMICROELECTRONICS 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 CONNECTION WITH THEIR PRODUCTS.
|
|
;*******************************************************************************
|
|
;
|
|
; The vector table is normally located at address 0.
|
|
; When debugging in RAM, it can be located in RAM, aligned to at least 2^6.
|
|
; The name "__vector_table" has special meaning for C-SPY:
|
|
; it is where the SP start value is found, and the NVIC vector
|
|
; table register (VTOR) is initialized to this address if != 0.
|
|
;
|
|
; Cortex-M version
|
|
;
|
|
|
|
MODULE ?cstartup
|
|
|
|
;; Forward declaration of sections.
|
|
SECTION CSTACK:DATA:NOROOT(3)
|
|
|
|
SECTION .intvec:CODE:NOROOT(2)
|
|
|
|
EXTERN __iar_program_start
|
|
EXTERN SystemInit
|
|
PUBLIC __vector_table
|
|
|
|
DATA
|
|
__vector_table
|
|
DCD sfe(CSTACK)
|
|
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 WWDG_IRQHandler ; 0: window Watchdog Timer
|
|
DCD PVD_IRQHandler ; 1:
|
|
DCD 0 ; 2:
|
|
DCD RTC_IRQHandler ; 3: RTC
|
|
DCD FLASH_IRQHandler ; 4: FLASH
|
|
DCD RCC_IRQHandler ; 5: RCC
|
|
DCD EXTI0_IRQHandler ; 6: EXTI0
|
|
DCD EXTI1_IRQHandler ; 7: EXTI1
|
|
DCD EXTI2_IRQHandler ; 8: EXTI2
|
|
DCD EXTI3_IRQHandler ; 9: EXTI3
|
|
DCD EXTI4_IRQHandler ; 10: EXTI4
|
|
DCD DMA_CH1_IRQHandler ; 11:
|
|
DCD SPI1_IRQHandler ; 12:
|
|
DCD UART1_IRQHandler ; 13:
|
|
DCD RTCAlarm_IRQHandler ; 14:
|
|
DCD QSPI_IRQHandler ; 15:
|
|
DCD BEEPER_IRQHandler ; 16:
|
|
DCD LCD_IRQHandler ; 17:
|
|
DCD ADC_IRQHandler ; 18:
|
|
DCD 0 ; 19:
|
|
DCD ADC_SEQ_IRQHandler ; 20:
|
|
DCD 0 ; 21:
|
|
DCD LED_IRQHandler ; 22:
|
|
DCD EXINT7_5_IRQHandler ; 23:
|
|
DCD TIMER1_BRK_IRQHandler ; 24:
|
|
DCD TIMER1_UP_IRQHandler ; 25:
|
|
DCD TIMER1_TRIG_COM_IRQHandler ; 26:
|
|
DCD TIMER1_CC_IRQHandler ; 27:
|
|
DCD TIMER2_IRQHandler ; 28:
|
|
DCD 0 ; 29:
|
|
DCD I2C_ER_IRQHandler ; 30:
|
|
DCD I2C_EV_IRQHandler ; 31:
|
|
DCD 0 ; 32:
|
|
DCD 0 ; 33:
|
|
DCD 0 ; 34:
|
|
DCD 0 ; 35:
|
|
DCD 0 ; 36:
|
|
DCD 0 ; 37:
|
|
DCD 0 ; 38:
|
|
DCD 0 ; 39:
|
|
DCD 0 ; 40:
|
|
DCD 0 ; 41:
|
|
DCD 0 ; 42:
|
|
DCD 0 ; 43:
|
|
DCD 0 ; 44:
|
|
DCD 0 ; 45:
|
|
DCD 0 ; 46:
|
|
DCD 0 ; 47:
|
|
DCD 0 ; 48:
|
|
DCD 0 ; 49:
|
|
DCD 0 ; 50:
|
|
DCD 0 ; 51:
|
|
DCD 0 ; 52:
|
|
DCD 0 ; 53:
|
|
DCD 0 ; 54:
|
|
DCD 0 ; 55:
|
|
DCD 0 ; 56:
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;
|
|
;; Default interrupt handlers.
|
|
;;
|
|
THUMB
|
|
|
|
PUBWEAK Reset_Handler
|
|
SECTION .text:CODE:REORDER:NOROOT(2)
|
|
Reset_Handler
|
|
MOVS.N R1,#0
|
|
LDR R0,[R1]
|
|
MOV SP,R0
|
|
LDR R0, =SystemInit
|
|
BLX R0
|
|
LDR R0, =__iar_program_start
|
|
BX R0
|
|
|
|
PUBWEAK NMI_Handler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
NMI_Handler
|
|
B NMI_Handler
|
|
|
|
PUBWEAK HardFault_Handler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
HardFault_Handler
|
|
B HardFault_Handler
|
|
|
|
PUBWEAK MemManage_Handler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
MemManage_Handler
|
|
B MemManage_Handler
|
|
|
|
PUBWEAK BusFault_Handler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
BusFault_Handler
|
|
B BusFault_Handler
|
|
|
|
PUBWEAK UsageFault_Handler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
UsageFault_Handler
|
|
B UsageFault_Handler
|
|
|
|
PUBWEAK SVC_Handler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
SVC_Handler
|
|
B SVC_Handler
|
|
|
|
PUBWEAK DebugMon_Handler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
DebugMon_Handler
|
|
B DebugMon_Handler
|
|
|
|
PUBWEAK PendSV_Handler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
PendSV_Handler
|
|
B PendSV_Handler
|
|
|
|
PUBWEAK SysTick_Handler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
SysTick_Handler
|
|
B SysTick_Handler
|
|
|
|
PUBWEAK WWDG_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
WWDG_IRQHandler
|
|
B WWDG_IRQHandler
|
|
|
|
PUBWEAK PVD_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
PVD_IRQHandler
|
|
B PVD_IRQHandler
|
|
|
|
PUBWEAK RTCAlarm_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
RTCAlarm_IRQHandler
|
|
B RTCAlarm_IRQHandler
|
|
|
|
PUBWEAK QSPI_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
QSPI_IRQHandler
|
|
B QSPI_IRQHandler
|
|
|
|
PUBWEAK BEEPER_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
BEEPER_IRQHandler
|
|
B BEEPER_IRQHandler
|
|
|
|
PUBWEAK LCD_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
LCD_IRQHandler
|
|
B LCD_IRQHandler
|
|
|
|
PUBWEAK ADC_SEQ_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
ADC_SEQ_IRQHandler
|
|
B ADC_SEQ_IRQHandler
|
|
|
|
PUBWEAK LED_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
LED_IRQHandler
|
|
B LED_IRQHandler
|
|
|
|
PUBWEAK EXINT7_5_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
EXINT7_5_IRQHandler
|
|
B EXINT7_5_IRQHandler
|
|
|
|
PUBWEAK TIMER1_BRK_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
TIMER1_BRK_IRQHandler
|
|
B TIMER1_BRK_IRQHandler
|
|
|
|
PUBWEAK TIMER1_UP_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
TIMER1_UP_IRQHandler
|
|
B TIMER1_UP_IRQHandler
|
|
|
|
PUBWEAK TIMER1_TRIG_COM_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
TIMER1_TRIG_COM_IRQHandler
|
|
B TIMER1_TRIG_COM_IRQHandler
|
|
|
|
|
|
PUBWEAK TIMER1_CC_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
TIMER1_CC_IRQHandler
|
|
B TIMER1_CC_IRQHandler
|
|
|
|
PUBWEAK RTC_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
RTC_IRQHandler
|
|
B RTC_IRQHandler
|
|
|
|
PUBWEAK FLASH_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
FLASH_IRQHandler
|
|
B FLASH_IRQHandler
|
|
|
|
PUBWEAK RCC_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
RCC_IRQHandler
|
|
B RCC_IRQHandler
|
|
|
|
PUBWEAK EXTI0_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
EXTI0_IRQHandler
|
|
B EXTI0_IRQHandler
|
|
|
|
PUBWEAK EXTI1_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
EXTI1_IRQHandler
|
|
B EXTI1_IRQHandler
|
|
|
|
PUBWEAK EXTI2_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
EXTI2_IRQHandler
|
|
B EXTI2_IRQHandler
|
|
|
|
PUBWEAK EXTI3_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
EXTI3_IRQHandler
|
|
B EXTI3_IRQHandler
|
|
|
|
|
|
PUBWEAK EXTI4_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
EXTI4_IRQHandler
|
|
B EXTI4_IRQHandler
|
|
|
|
PUBWEAK DMA_CH1_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
DMA_CH1_IRQHandler
|
|
B DMA_CH1_IRQHandler
|
|
|
|
PUBWEAK DMA_CH2_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
DMA_CH2_IRQHandler
|
|
B DMA_CH2_IRQHandler
|
|
|
|
PUBWEAK DMA_CH3_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
DMA_CH3_IRQHandler
|
|
B DMA_CH3_IRQHandler
|
|
|
|
PUBWEAK DMA_CH4_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
DMA_CH4_IRQHandler
|
|
B DMA_CH4_IRQHandler
|
|
|
|
PUBWEAK DMA_CH5_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
DMA_CH5_IRQHandler
|
|
B DMA_CH5_IRQHandler
|
|
|
|
PUBWEAK DMA_CH6_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
DMA_CH6_IRQHandler
|
|
B DMA_CH6_IRQHandler
|
|
|
|
PUBWEAK DMA_CH7_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
DMA_CH7_IRQHandler
|
|
B DMA_CH7_IRQHandler
|
|
|
|
PUBWEAK ADC_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
ADC_IRQHandler
|
|
B ADC_IRQHandler
|
|
|
|
PUBWEAK COMP_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
COMP_IRQHandler
|
|
B COMP_IRQHandler
|
|
|
|
PUBWEAK EXINT9_5_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
EXINT9_5_IRQHandler
|
|
B EXINT9_5_IRQHandler
|
|
|
|
PUBWEAK TIMER2_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
TIMER2_IRQHandler
|
|
B TIMER2_IRQHandler
|
|
|
|
PUBWEAK TIMER3_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
TIMER3_IRQHandler
|
|
B TIMER3_IRQHandler
|
|
|
|
PUBWEAK TIMER4_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
TIMER4_IRQHandler
|
|
B TIMER4_IRQHandler
|
|
|
|
PUBWEAK I2C_EV_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
I2C_EV_IRQHandler
|
|
B I2C_EV_IRQHandler
|
|
|
|
PUBWEAK I2C_ER_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
I2C_ER_IRQHandler
|
|
B I2C_ER_IRQHandler
|
|
|
|
PUBWEAK SPI1_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
SPI1_IRQHandler
|
|
B SPI1_IRQHandler
|
|
|
|
PUBWEAK SPI2_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
SPI2_IRQHandler
|
|
B SPI2_IRQHandler
|
|
|
|
PUBWEAK UART1_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
UART1_IRQHandler
|
|
B UART1_IRQHandler
|
|
|
|
PUBWEAK EXTI15_10_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
EXTI15_10_IRQHandler
|
|
B EXTI15_10_IRQHandler
|
|
|
|
PUBWEAK EXTI17_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
EXTI17_IRQHandler
|
|
B EXTI17_IRQHandler
|
|
|
|
PUBWEAK EXTI18_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
EXTI18_IRQHandler
|
|
B EXTI18_IRQHandler
|
|
|
|
PUBWEAK TIMER5_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
TIMER5_IRQHandler
|
|
B TIMER5_IRQHandler
|
|
|
|
PUBWEAK SPI3_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
SPI3_IRQHandler
|
|
B SPI3_IRQHandler
|
|
|
|
PUBWEAK CACHE_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
CACHE_IRQHandler
|
|
B CACHE_IRQHandler
|
|
|
|
PUBWEAK DMA2_CH1_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
DMA2_CH1_IRQHandler
|
|
B DMA2_CH1_IRQHandler
|
|
|
|
PUBWEAK DMA2_CH2_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
DMA2_CH2_IRQHandler
|
|
B DMA2_CH2_IRQHandler
|
|
|
|
PUBWEAK DMA2_CH3_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
DMA2_CH3_IRQHandler
|
|
B DMA2_CH3_IRQHandler
|
|
|
|
PUBWEAK DMA2_CH4_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
DMA2_CH4_IRQHandler
|
|
B DMA2_CH4_IRQHandler
|
|
|
|
PUBWEAK DMA2_CH5_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
DMA2_CH5_IRQHandler
|
|
B DMA2_CH5_IRQHandler
|
|
|
|
PUBWEAK DIG_COMP_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
DIG_COMP_IRQHandler
|
|
B DIG_COMP_IRQHandler
|
|
|
|
PUBWEAK MDIO_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
MDIO_IRQHandler
|
|
B MDIO_IRQHandler
|
|
|
|
PUBWEAK PLA0_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
PLA0_IRQHandler
|
|
B PLA0_IRQHandler
|
|
|
|
PUBWEAK PLA2_IRQHandler
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
PLA2_IRQHandler
|
|
B PLA2_IRQHandler
|
|
|
|
END
|
|
/******************* (C) COPYRIGHT 2022 LegendSemi *****END OF FILE****/
|