mirror of
https://github.com/hathach/tinyusb.git
synced 2025-01-17 05:32:55 +08:00
169 lines
6.3 KiB
ArmAsm
169 lines
6.3 KiB
ArmAsm
|
/**************************************************
|
||
|
*
|
||
|
* Part one of the system initialization code, contains low-level
|
||
|
* initialization, plain thumb variant.
|
||
|
*
|
||
|
* Copyright 2012 IAR Systems. All rights reserved.
|
||
|
*
|
||
|
* $Revision: 50057 $
|
||
|
*
|
||
|
**************************************************/
|
||
|
|
||
|
;
|
||
|
; The modules in this file are included in the libraries, and may be replaced
|
||
|
; by any user-defined modules that define the PUBLIC symbol _program_start or
|
||
|
; a user defined start symbol.
|
||
|
; To override the cstartup defined in the library, simply add your modified
|
||
|
; version to the workbench project.
|
||
|
;
|
||
|
; 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
|
||
|
PUBLIC __vector_table
|
||
|
PUBLIC __vector_table_0x1c
|
||
|
|
||
|
DATA
|
||
|
__vector_table
|
||
|
DCD sfe(CSTACK) ; Top of Stack
|
||
|
DCD __iar_program_start ; 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
|
||
|
__vector_table_0x1c
|
||
|
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
|
||
|
DCD FLEX_INT0_IRQHandler ; GPIO pin interrupt 0
|
||
|
DCD FLEX_INT1_IRQHandler ; GPIO pin interrupt 1
|
||
|
DCD FLEX_INT2_IRQHandler ; GPIO pin interrupt 2
|
||
|
DCD FLEX_INT3_IRQHandler ; GPIO pin interrupt 3
|
||
|
DCD FLEX_INT4_IRQHandler ; GPIO pin interrupt 4
|
||
|
DCD FLEX_INT5_IRQHandler ; GPIO pin interrupt 5
|
||
|
DCD FLEX_INT6_IRQHandler ; GPIO pin interrupt 6
|
||
|
DCD FLEX_INT7_IRQHandler ; GPIO pin interrupt 7
|
||
|
DCD GINT0_IRQHandler ; GPIO GROUP0 interrupt
|
||
|
DCD GINT1_IRQHandler ; GPIO GROUP1 interrupt
|
||
|
DCD 0 ; Reserved
|
||
|
DCD 0 ; Reserved
|
||
|
DCD 0 ; Reserved
|
||
|
DCD 0 ; Reserved
|
||
|
DCD SSP1_IRQHandler ; SSP1 interrupt
|
||
|
DCD I2C_IRQHandler ; I2C interrupt
|
||
|
DCD CT16B0_IRQHandler ; CT16B0 Match 0-3, Capture 0
|
||
|
DCD CT16B1_IRQHandler ; CT16B1 Match 0-3, Capture 0
|
||
|
DCD CT32B0_IRQHandler ; CT32B0 Match 0-3, Capture 0
|
||
|
DCD CT32B1_IRQHandler ; CT32B1 Match 0-3, Capture 0
|
||
|
DCD SSP0_IRQHandler ; SSP0 interrupt
|
||
|
DCD USART_IRQHandler ; USART interrupt
|
||
|
DCD USB_IRQHandler ; USB_IRQ interrupt
|
||
|
DCD USB_FIQHandler ; USB_FIQ interrupt
|
||
|
DCD ADC_IRQHandler ; ADC interrupt
|
||
|
DCD WWDT_IRQHandler ; WWDT interrupt
|
||
|
DCD BOD_IRQHandler ; BOD interrupt
|
||
|
DCD 0 ; Reserved
|
||
|
DCD 0 ; Reserved
|
||
|
DCD 0 ; Reserved
|
||
|
DCD USBWakeup_IRQHandler ; USB_WAKEUP interrupt
|
||
|
|
||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
|
;;
|
||
|
;; Default interrupt handlers.
|
||
|
;;
|
||
|
|
||
|
PUBWEAK NMI_Handler
|
||
|
PUBWEAK HardFault_Handler
|
||
|
PUBWEAK MemManage_Handler
|
||
|
PUBWEAK BusFault_Handler
|
||
|
PUBWEAK UsageFault_Handler
|
||
|
PUBWEAK SVC_Handler
|
||
|
PUBWEAK DebugMon_Handler
|
||
|
PUBWEAK PendSV_Handler
|
||
|
PUBWEAK SysTick_Handler
|
||
|
PUBWEAK FLEX_INT0_IRQHandler
|
||
|
PUBWEAK FLEX_INT1_IRQHandler
|
||
|
PUBWEAK FLEX_INT2_IRQHandler
|
||
|
PUBWEAK FLEX_INT3_IRQHandler
|
||
|
PUBWEAK FLEX_INT4_IRQHandler
|
||
|
PUBWEAK FLEX_INT5_IRQHandler
|
||
|
PUBWEAK FLEX_INT6_IRQHandler
|
||
|
PUBWEAK FLEX_INT7_IRQHandler
|
||
|
PUBWEAK GINT0_IRQHandler
|
||
|
PUBWEAK GINT1_IRQHandler
|
||
|
PUBWEAK SSP1_IRQHandler
|
||
|
PUBWEAK I2C_IRQHandler
|
||
|
PUBWEAK CT16B0_IRQHandler
|
||
|
PUBWEAK CT16B1_IRQHandler
|
||
|
PUBWEAK CT32B0_IRQHandler
|
||
|
PUBWEAK CT32B1_IRQHandler
|
||
|
PUBWEAK SSP0_IRQHandler
|
||
|
PUBWEAK USART_IRQHandler
|
||
|
PUBWEAK USB_IRQHandler
|
||
|
PUBWEAK USB_FIQHandler
|
||
|
PUBWEAK ADC_IRQHandler
|
||
|
PUBWEAK WWDT_IRQHandler
|
||
|
PUBWEAK BOD_IRQHandler
|
||
|
PUBWEAK USBWakeup_IRQHandler
|
||
|
|
||
|
SECTION .text:CODE:REORDER(1)
|
||
|
THUMB
|
||
|
|
||
|
NMI_Handler
|
||
|
HardFault_Handler
|
||
|
MemManage_Handler
|
||
|
BusFault_Handler
|
||
|
UsageFault_Handler
|
||
|
SVC_Handler
|
||
|
DebugMon_Handler
|
||
|
PendSV_Handler
|
||
|
SysTick_Handler
|
||
|
FLEX_INT0_IRQHandler
|
||
|
FLEX_INT1_IRQHandler
|
||
|
FLEX_INT2_IRQHandler
|
||
|
FLEX_INT3_IRQHandler
|
||
|
FLEX_INT4_IRQHandler
|
||
|
FLEX_INT5_IRQHandler
|
||
|
FLEX_INT6_IRQHandler
|
||
|
FLEX_INT7_IRQHandler
|
||
|
GINT0_IRQHandler
|
||
|
GINT1_IRQHandler
|
||
|
SSP1_IRQHandler
|
||
|
I2C_IRQHandler
|
||
|
CT16B0_IRQHandler
|
||
|
CT16B1_IRQHandler
|
||
|
CT32B0_IRQHandler
|
||
|
CT32B1_IRQHandler
|
||
|
SSP0_IRQHandler
|
||
|
USART_IRQHandler
|
||
|
USB_IRQHandler
|
||
|
USB_FIQHandler
|
||
|
ADC_IRQHandler
|
||
|
WWDT_IRQHandler
|
||
|
BOD_IRQHandler
|
||
|
USBWakeup_IRQHandler
|
||
|
Default_Handler
|
||
|
B Default_Handler
|
||
|
|
||
|
END
|