You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
272 lines
9.3 KiB
ArmAsm
272 lines
9.3 KiB
ArmAsm
/**************************************************
|
|
*
|
|
* Part one of the system initialization code, contains low-level
|
|
* initialization, plain thumb variant.
|
|
*
|
|
* Copyright 2009 IAR Systems. All rights reserved.
|
|
*
|
|
* $Revision: 28532 $
|
|
*
|
|
**************************************************/
|
|
|
|
;
|
|
; 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
|
|
EXTERN xPortPendSVHandler
|
|
EXTERN xPortSysTickHandler
|
|
EXTERN vPortSVCHandler
|
|
EXTERN vEMAC_ISR
|
|
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 vPortSVCHandler ; SVCall Handler
|
|
DCD DebugMon_Handler ; Debug Monitor Handler
|
|
DCD 0 ; Reserved
|
|
DCD xPortPendSVHandler ; PendSV Handler
|
|
DCD xPortSysTickHandler ; SysTick Handler
|
|
DCD WDT_IRQHandler ; Watchdog Handler
|
|
DCD TMR0_IRQHandler ; TIMER0 Handler
|
|
DCD TMR1_IRQHandler ; TIMER1 Handler
|
|
DCD TMR2_IRQHandler ; TIMER2 Handler
|
|
DCD TMR3_IRQHandler ; TIMER3 Handler
|
|
DCD UART0_IRQHandler ; UART0 Handler
|
|
DCD UART1_IRQHandler ; UART1 Handler
|
|
DCD UART2_IRQHandler ; UART2 Handler
|
|
DCD UART3_IRQHandler ; UART3 Handler
|
|
DCD PWM1_IRQHandler ; PWM1 Handler
|
|
DCD I2C0_IRQHandler ; I2C0 Handler
|
|
DCD I2C1_IRQHandler ; I2C1 Handler
|
|
DCD I2C2_IRQHandler ; I2C2 Handler
|
|
DCD SPI_IRQHandler ; SPI Handler
|
|
DCD SSP0_IRQHandler ; SSP0 Handler
|
|
DCD SSP1_IRQHandler ; SSP1 Handler
|
|
DCD PLL0_IRQHandler ; PLL0 Handler
|
|
DCD RTC_IRQHandler ; RTC Handler
|
|
DCD EINT0_IRQHandler ; EXT Interupt 0 Handler
|
|
DCD EINT1_IRQHandler ; EXT Interupt 1 Handler
|
|
DCD EINT2_IRQHandler ; EXT Interupt 2 Handler
|
|
DCD EINT3_IRQHandler ; EXT Interupt 3 Handler
|
|
DCD ADC_IRQHandler ; ADC Handler
|
|
DCD BOD_IRQHandler ; BOD Handler
|
|
DCD USB_IRQHandler ; USB Handler
|
|
DCD CAN_IRQHandler ; CAN Handler
|
|
DCD GPDMA_IRQHandler ; General Purpose DMA Handler
|
|
DCD I2S_IRQHandler ; I2S Handler
|
|
DCD vEMAC_ISR ; Ethernet Handler
|
|
DCD RIT_IRQHandler ; Repetitive Interrupt Timer Handler
|
|
DCD MotorControlPWM_IRQHandler ; Motor Control PWM Handler
|
|
DCD QE_IRQHandler ; Quadrature Encoder Handler
|
|
DCD PLL1_IRQHandler ; PLL1 Handler
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;
|
|
;; Default interrupt handlers.
|
|
;;
|
|
THUMB
|
|
|
|
PUBWEAK NMI_Handler
|
|
SECTION .text:CODE:REORDER(1)
|
|
NMI_Handler
|
|
B NMI_Handler
|
|
PUBWEAK HardFault_Handler
|
|
SECTION .text:CODE:REORDER(1)
|
|
HardFault_Handler
|
|
B HardFault_Handler
|
|
PUBWEAK MemManage_Handler
|
|
SECTION .text:CODE:REORDER(1)
|
|
MemManage_Handler
|
|
B MemManage_Handler
|
|
PUBWEAK BusFault_Handler
|
|
SECTION .text:CODE:REORDER(1)
|
|
BusFault_Handler
|
|
B BusFault_Handler
|
|
PUBWEAK UsageFault_Handler
|
|
SECTION .text:CODE:REORDER(1)
|
|
UsageFault_Handler
|
|
B UsageFault_Handler
|
|
PUBWEAK SVC_Handler
|
|
SECTION .text:CODE:REORDER(1)
|
|
SVC_Handler
|
|
B SVC_Handler
|
|
PUBWEAK DebugMon_Handler
|
|
SECTION .text:CODE:REORDER(1)
|
|
DebugMon_Handler
|
|
B DebugMon_Handler
|
|
PUBWEAK PendSV_Handler
|
|
SECTION .text:CODE:REORDER(1)
|
|
PendSV_Handler
|
|
B PendSV_Handler
|
|
PUBWEAK SysTick_Handler
|
|
SECTION .text:CODE:REORDER(1)
|
|
SysTick_Handler
|
|
B SysTick_Handler
|
|
PUBWEAK WDT_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
WDT_IRQHandler
|
|
B WDT_IRQHandler
|
|
PUBWEAK TMR0_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
TMR0_IRQHandler
|
|
B TMR0_IRQHandler
|
|
PUBWEAK TMR1_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
TMR1_IRQHandler
|
|
B TMR1_IRQHandler
|
|
PUBWEAK TMR2_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
TMR2_IRQHandler
|
|
B TMR2_IRQHandler
|
|
PUBWEAK TMR3_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
TMR3_IRQHandler
|
|
B TMR3_IRQHandler
|
|
PUBWEAK UART0_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
UART0_IRQHandler
|
|
B UART0_IRQHandler
|
|
PUBWEAK UART1_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
UART1_IRQHandler
|
|
B UART1_IRQHandler
|
|
PUBWEAK UART2_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
UART2_IRQHandler
|
|
B UART2_IRQHandler
|
|
PUBWEAK UART3_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
UART3_IRQHandler
|
|
B UART3_IRQHandler
|
|
PUBWEAK PWM1_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
PWM1_IRQHandler
|
|
B PWM1_IRQHandler
|
|
PUBWEAK I2C0_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
I2C0_IRQHandler
|
|
B I2C0_IRQHandler
|
|
PUBWEAK I2C1_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
I2C1_IRQHandler
|
|
B I2C1_IRQHandler
|
|
PUBWEAK I2C2_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
I2C2_IRQHandler
|
|
B I2C2_IRQHandler
|
|
PUBWEAK SPI_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
SPI_IRQHandler
|
|
B SPI_IRQHandler
|
|
PUBWEAK SSP0_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
SSP0_IRQHandler
|
|
B SSP0_IRQHandler
|
|
PUBWEAK SSP1_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
SSP1_IRQHandler
|
|
B SSP1_IRQHandler
|
|
PUBWEAK PLL0_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
PLL0_IRQHandler
|
|
B PLL0_IRQHandler
|
|
PUBWEAK RTC_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
RTC_IRQHandler
|
|
B RTC_IRQHandler
|
|
PUBWEAK EINT0_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
EINT0_IRQHandler
|
|
B EINT0_IRQHandler
|
|
PUBWEAK EINT1_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
EINT1_IRQHandler
|
|
B EINT1_IRQHandler
|
|
PUBWEAK EINT2_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
EINT2_IRQHandler
|
|
B EINT2_IRQHandler
|
|
PUBWEAK EINT3_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
EINT3_IRQHandler
|
|
B EINT3_IRQHandler
|
|
PUBWEAK ADC_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
ADC_IRQHandler
|
|
B ADC_IRQHandler
|
|
PUBWEAK BOD_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
BOD_IRQHandler
|
|
B BOD_IRQHandler
|
|
PUBWEAK USB_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
USB_IRQHandler
|
|
B USB_IRQHandler
|
|
PUBWEAK CAN_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
CAN_IRQHandler
|
|
B CAN_IRQHandler
|
|
PUBWEAK GPDMA_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
GPDMA_IRQHandler
|
|
B GPDMA_IRQHandler
|
|
PUBWEAK I2S_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
I2S_IRQHandler
|
|
B I2S_IRQHandler
|
|
PUBWEAK Ethernet_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
Ethernet_IRQHandler
|
|
B Ethernet_IRQHandler
|
|
PUBWEAK RIT_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
RIT_IRQHandler
|
|
B RIT_IRQHandler
|
|
PUBWEAK MotorControlPWM_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
MotorControlPWM_IRQHandler
|
|
B MotorControlPWM_IRQHandler
|
|
PUBWEAK QE_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
QE_IRQHandler
|
|
B QE_IRQHandler
|
|
PUBWEAK PLL1_IRQHandler
|
|
SECTION .text:CODE:REORDER(1)
|
|
PLL1_IRQHandler
|
|
B PLL1_IRQHandler
|
|
|
|
END
|