Newer
Older
mbed-os / targets / TARGET_Maxim / TARGET_MAX32620C / device / TOOLCHAIN_IAR / startup_max32620.S
@Keyur Hariya Keyur Hariya on 4 Apr 2018 14 KB Fix assembly file extension
;*******************************************************************************
;* Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved.
;*
;* Permission is hereby granted, free of charge, to any person obtaining a
;* copy of this software and associated documentation files (the "Software"),
;* to deal in the Software without restriction, including without limitation
;* the rights to use, copy, modify, merge, publish, distribute, sublicense,
;* and/or sell copies of the Software, and to permit persons to whom the
;* Software is furnished to do so, subject to the following conditions:
;*
;* The above copyright notice and this permission notice shall be included
;* in all copies or substantial portions of the Software.
;*
;* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
;* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
;* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
;* IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
;* OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
;* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
;* OTHER DEALINGS IN THE SOFTWARE.
;*
;* Except as contained in this notice, the name of Maxim Integrated
;* Products, Inc. shall not be used except as stated in the Maxim Integrated
;* Products, Inc. Branding Policy.
;*
;* The mere transfer of this software does not imply any licenses
;* of trade secrets, proprietary technology, copyrights, patents,
;* trademarks, maskwork rights, or any other form of intellectual
;* property whatsoever. Maxim Integrated Products, Inc. retains all
;* ownership rights.
;*
;* Description        : MAX32620 device vector table for IAR EWARM toolchain.
;*                      - Sets the initial SP
;*                      - Sets the initial PC == _iar_program_start,
;*                      - Set the vector table entries with the exceptions ISR
;*                        address, all set as PUBWEAK. User may override any ISR
;*                        defined as PUBWEAK.
;*                      - Branches to main in the C library (which eventually
;*                        calls main()).
;*                      After Reset the Cortex-M4 processor is in Thread mode,
;*                      priority is Privileged, and the Stack is set to Main.
;*******************************************************************************
    MODULE  ?cstartup

    ;; Forward declaration of sections.
    SECTION CSTACK:DATA:NOROOT(3)

    SECTION .intvec:CODE:NOROOT(2)

    EXTERN  __iar_program_start
    EXTERN  PreInit
    EXTERN  SystemInit
    PUBLIC  __vector_table
    PUBLIC  __vector_table_modify
    PUBLIC  __Vectors
    PUBLIC  __Vectors_End
    PUBLIC  __Vectors_Size

    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
__vector_table_modify
    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
    ; MAX32620C Specific Interrupts
    DCD     CLKMAN_IRQHandler           ; 16:00 CLKMAN */
    DCD     PWRMAN_IRQHandler           ; 17:01 PWRMAN */
    DCD     FLC_IRQHandler              ; 18:02 Flash Controller */
    DCD     RTC0_IRQHandler             ; 19:03 RTC INT0 */
    DCD     RTC1_IRQHandler             ; 20:04 RTC INT1 */
    DCD     RTC2_IRQHandler             ; 21:05 RTC INT2 */
    DCD     RTC3_IRQHandler             ; 22:06 RTC INT3 */
    DCD     PMU_IRQHandler              ; 23:07 PMU */
    DCD     USB_IRQHandler              ; 24:08 USB */
    DCD     AES_IRQHandler              ; 25:09 AES */
    DCD     MAA_IRQHandler              ; 26:10 MAA */
    DCD     WDT0_IRQHandler             ; 27:11 WATCHDOG0 */
    DCD     WDT0_P_IRQHandler           ; 28:12 WATCHDOG0 PRE-WINDOW */
    DCD     WDT1_IRQHandler             ; 29:13 WATCHDOG1 */
    DCD     WDT1_P_IRQHandler           ; 30:14 WATCHDOG1 PRE-WINDOW */
    DCD     GPIO_P0_IRQHandler          ; 31:15 GPIO Port 0  */
    DCD     GPIO_P1_IRQHandler          ; 32:16 GPIO Port 1  */
    DCD     GPIO_P2_IRQHandler          ; 33:17 GPIO Port 2  */
    DCD     GPIO_P3_IRQHandler          ; 34:18 GPIO Port 3  */
    DCD     GPIO_P4_IRQHandler          ; 35:19 GPIO Port 4  */
    DCD     GPIO_P5_IRQHandler          ; 36:20 GPIO Port 5  */
    DCD     GPIO_P6_IRQHandler          ; 37:21 GPIO Port 6  */
    DCD     TMR0_IRQHandler             ; 38:22 Timer32-0 */
    DCD     TMR16_0_IRQHandler          ; 39:23 Timer16-s0 */
    DCD     TMR1_IRQHandler             ; 40:24 Timer32-1 */
    DCD     TMR16_1_IRQHandler          ; 41:25 Timer16-s1 */
    DCD     TMR2_IRQHandler             ; 42:26 Timer32-2 */
    DCD     TMR16_2_IRQHandler          ; 43:27 Timer16-s2 */
    DCD     TMR3_IRQHandler             ; 44:28 Timer32-3 */
    DCD     TMR16_3_IRQHandler          ; 45:29 Timer16-s3 */
    DCD     TMR4_IRQHandler             ; 46:30 Timer32-4 */
    DCD     TMR16_4_IRQHandler          ; 47:31 Timer16-s4 */
    DCD     TMR5_IRQHandler             ; 48:32 Timer32-5 */
    DCD     TMR16_5_IRQHandler          ; 49:33 Timer16-s5 */
    DCD     UART0_IRQHandler            ; 50:34 UART0 */
    DCD     UART1_IRQHandler            ; 51:35 UART1 */
    DCD     UART2_IRQHandler            ; 52:36 UART2 */
    DCD     UART3_IRQHandler            ; 53:37 UART3 */
    DCD     PT_IRQHandler               ; 54:38 PT */
    DCD     I2CM0_IRQHandler            ; 55:39 I2C Master 0 */
    DCD     I2CM1_IRQHandler            ; 56:40 I2C Master 1 */
    DCD     I2CM2_IRQHandler            ; 57:41 I2C Master 2 */
    DCD     I2CS_IRQHandler             ; 58:42 I2C Slave */
    DCD     SPIM0_IRQHandler            ; 59:43 SPI Master 0 */
    DCD     SPIM1_IRQHandler            ; 60:44 SPI Master 1 */
    DCD     SPIM2_IRQHandler            ; 61:45 SPI Master 2 */
    DCD     SPIB_IRQHandler             ; 62:46 SPI Bridge */
    DCD     OWM_IRQHandler              ; 63:47 One-wire Master */
    DCD     AFE_IRQHandler              ; 64:48 AFE */
    DCD     SPIS_IRQHandler             ; 65:49 SPI Slave

__Vectors_End
__Vectors       EQU   __vector_table
__Vectors_Size  EQU   __Vectors_End - __Vectors



    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Default interrupt handlers.
;;
    THUMB
    PUBWEAK Reset_Handler
    SECTION .text:CODE:REORDER:NOROOT(2)
Reset_Handler

        LDR        R0, =PreInit
        BLX        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 CLKMAN_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
CLKMAN_IRQHandler
        B       CLKMAN_IRQHandler

        PUBWEAK PWRMAN_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
PWRMAN_IRQHandler
        B       PWRMAN_IRQHandler

        PUBWEAK FLC_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
FLC_IRQHandler
        B       FLC_IRQHandler

        PUBWEAK RTC0_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
RTC0_IRQHandler
        B       RTC0_IRQHandler

        PUBWEAK RTC1_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
RTC1_IRQHandler
        B       RTC1_IRQHandler

        PUBWEAK RTC2_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
RTC2_IRQHandler
        B       RTC2_IRQHandler

        PUBWEAK RTC3_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
RTC3_IRQHandler
        B       RTC3_IRQHandler

        PUBWEAK PMU_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
PMU_IRQHandler
        B       PMU_IRQHandler

        PUBWEAK USB_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
USB_IRQHandler
        B       USB_IRQHandler

        PUBWEAK AES_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
AES_IRQHandler
        B       AES_IRQHandler

        PUBWEAK MAA_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
MAA_IRQHandler
        B       MAA_IRQHandler

        PUBWEAK WDT0_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
WDT0_IRQHandler
        B       WDT0_IRQHandler

        PUBWEAK WDT0_P_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
WDT0_P_IRQHandler
        B       WDT0_P_IRQHandler

        PUBWEAK WDT1_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
WDT1_IRQHandler
        B       WDT1_IRQHandler

        PUBWEAK WDT1_P_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
WDT1_P_IRQHandler
        B       WDT1_P_IRQHandler

        PUBWEAK GPIO_P0_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
GPIO_P0_IRQHandler
        B       GPIO_P0_IRQHandler

        PUBWEAK GPIO_P1_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
GPIO_P1_IRQHandler
        B       GPIO_P1_IRQHandler

        PUBWEAK GPIO_P2_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
GPIO_P2_IRQHandler
        B       GPIO_P2_IRQHandler

        PUBWEAK GPIO_P3_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
GPIO_P3_IRQHandler
        B       GPIO_P3_IRQHandler

        PUBWEAK GPIO_P4_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
GPIO_P4_IRQHandler
        B       GPIO_P4_IRQHandler

        PUBWEAK GPIO_P5_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
GPIO_P5_IRQHandler
        B       GPIO_P5_IRQHandler

        PUBWEAK GPIO_P6_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
GPIO_P6_IRQHandler
        B       GPIO_P6_IRQHandler

        PUBWEAK TMR0_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
TMR0_IRQHandler
        B       TMR0_IRQHandler

        PUBWEAK TMR16_0_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
TMR16_0_IRQHandler
        B       TMR16_0_IRQHandler

        PUBWEAK TMR1_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
TMR1_IRQHandler
        B       TMR1_IRQHandler

        PUBWEAK TMR16_1_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
TMR16_1_IRQHandler
        B       TMR16_1_IRQHandler

        PUBWEAK TMR2_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
TMR2_IRQHandler
        B       TMR2_IRQHandler

        PUBWEAK TMR16_2_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
TMR16_2_IRQHandler
        B       TMR16_2_IRQHandler

        PUBWEAK TMR3_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
TMR3_IRQHandler
        B       TMR3_IRQHandler

        PUBWEAK TMR16_3_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
TMR16_3_IRQHandler
        B       TMR16_3_IRQHandler

        PUBWEAK TMR4_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
TMR4_IRQHandler
        B       TMR4_IRQHandler

        PUBWEAK TMR16_4_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
TMR16_4_IRQHandler
        B       TMR16_4_IRQHandler

        PUBWEAK TMR5_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
TMR5_IRQHandler
        B       TMR5_IRQHandler

        PUBWEAK TMR16_5_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
TMR16_5_IRQHandler
        B       TMR16_5_IRQHandler

        PUBWEAK UART0_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
UART0_IRQHandler
        B       UART0_IRQHandler

        PUBWEAK UART1_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
UART1_IRQHandler
        B       UART1_IRQHandler

        PUBWEAK UART2_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
UART2_IRQHandler
        B       UART2_IRQHandler

        PUBWEAK UART3_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
UART3_IRQHandler
        B       UART3_IRQHandler

        PUBWEAK PT_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
PT_IRQHandler
        B       PT_IRQHandler

        PUBWEAK I2CM0_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
I2CM0_IRQHandler
        B       I2CM0_IRQHandler

        PUBWEAK I2CM1_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
I2CM1_IRQHandler
        B       I2CM1_IRQHandler

        PUBWEAK I2CM2_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
I2CM2_IRQHandler
        B       I2CM2_IRQHandler

        PUBWEAK I2CS_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
I2CS_IRQHandler
        B       I2CS_IRQHandler

        PUBWEAK SPIM0_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
SPIM0_IRQHandler
        B       SPIM0_IRQHandler

        PUBWEAK SPIM1_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
SPIM1_IRQHandler
        B       SPIM1_IRQHandler

        PUBWEAK SPIM2_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
SPIM2_IRQHandler
        B       SPIM2_IRQHandler

        PUBWEAK SPIB_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
SPIB_IRQHandler
        B       SPIB_IRQHandler

        PUBWEAK OWM_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
OWM_IRQHandler
        B       OWM_IRQHandler

        PUBWEAK AFE_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
AFE_IRQHandler
        B       AFE_IRQHandler

        PUBWEAK SPIS_IRQHandler
        SECTION .text:CODE:REORDER:NOROOT(1)
SPIS_IRQHandler
        B       SPIS_IRQHandler
        END