// Automatically generated file. DO NOT EDIT.
// Generated by gen-device-svd.go from ATSAMR21E19A.svd, see https://github.com/posborne/cmsis-svd/tree/master/data/Atmel

// Atmel ATSAMR21E19A device: Cortex-M0+ Microcontroller with 256KB Flash, 32KB SRAM, SIP48_RF233_FL512KB-pin package (refer to http://www.atmel.com/devices/SAMR21E19A.aspx for more)
//
//     ============================================================================
//     Atmel Microcontroller Software Support
//     ============================================================================
//     Copyright (c) 2016 Atmel Corporation,
//     a wholly owned subsidiary of Microchip Technology Inc.
//
//     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 Licence 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.
//     ============================================================================

.syntax unified

// This is the default handler for interrupts, if triggered but not defined.
.section .text.Default_Handler
.global  Default_Handler
.type    Default_Handler, %function
Default_Handler:
    wfe
    b    Default_Handler
.size Default_Handler, .-Default_Handler

// Avoid the need for repeated .weak and .set instructions.
.macro IRQ handler
    .weak  \handler
    .set   \handler, Default_Handler
.endm

// Must set the "a" flag on the section:
// https://svnweb.freebsd.org/base/stable/11/sys/arm/arm/locore-v4.S?r1=321049&r2=321048&pathrev=321049
// https://sourceware.org/binutils/docs/as/Section.html#ELF-Version
.section .isr_vector, "a", %progbits
.global  __isr_vector
__isr_vector:
    // Interrupt vector as defined by Cortex-M, starting with the stack top.
    // On reset, SP is initialized with *0x0 and PC is loaded with *0x4, loading
    // _stack_top and Reset_Handler.
    .long _stack_top
    .long Reset_Handler
    .long NMI_Handler
    .long HardFault_Handler
    .long MemoryManagement_Handler
    .long BusFault_Handler
    .long UsageFault_Handler
    .long 0
    .long 0
    .long 0
    .long 0
    .long SVC_Handler
    .long DebugMon_Handler
    .long 0
    .long PendSV_Handler
    .long SysTick_Handler

    // Extra interrupts for peripherals defined by the hardware vendor.
    .long PM_INTREQ_IRQHandler
    .long SYSCTRL_INTREQ_IRQHandler
    .long WDT_INTREQ_IRQHandler
    .long RTC_INTREQ_IRQHandler
    .long EIC_INTREQ_IRQHandler
    .long NVMCTRL_INTREQ_IRQHandler
    .long DMAC_INTREQ_IRQHandler
    .long USB_INTREQ_IRQHandler
    .long EVSYS_INTREQ_IRQHandler
    .long SERCOM0_INTREQ_IRQHandler
    .long SERCOM1_INTREQ_IRQHandler
    .long SERCOM2_INTREQ_IRQHandler
    .long SERCOM3_INTREQ_IRQHandler
    .long SERCOM4_INTREQ_IRQHandler
    .long SERCOM5_INTREQ_IRQHandler
    .long TCC0_INTREQ_IRQHandler
    .long TCC1_INTREQ_IRQHandler
    .long TCC2_INTREQ_IRQHandler
    .long TC3_INTREQ_IRQHandler
    .long TC4_INTREQ_IRQHandler
    .long TC5_INTREQ_IRQHandler
    .long TC6_INTREQ_IRQHandler
    .long TC7_INTREQ_IRQHandler
    .long ADC_INTREQ_IRQHandler
    .long AC_INTREQ_IRQHandler
    .long DAC_INTREQ_IRQHandler

    // Define default implementations for interrupts, redirecting to
    // Default_Handler when not implemented.
    IRQ NMI_Handler
    IRQ HardFault_Handler
    IRQ MemoryManagement_Handler
    IRQ BusFault_Handler
    IRQ UsageFault_Handler
    IRQ SVC_Handler
    IRQ DebugMon_Handler
    IRQ PendSV_Handler
    IRQ SysTick_Handler
    IRQ PM_INTREQ_IRQHandler
    IRQ SYSCTRL_INTREQ_IRQHandler
    IRQ WDT_INTREQ_IRQHandler
    IRQ RTC_INTREQ_IRQHandler
    IRQ EIC_INTREQ_IRQHandler
    IRQ NVMCTRL_INTREQ_IRQHandler
    IRQ DMAC_INTREQ_IRQHandler
    IRQ USB_INTREQ_IRQHandler
    IRQ EVSYS_INTREQ_IRQHandler
    IRQ SERCOM0_INTREQ_IRQHandler
    IRQ SERCOM1_INTREQ_IRQHandler
    IRQ SERCOM2_INTREQ_IRQHandler
    IRQ SERCOM3_INTREQ_IRQHandler
    IRQ SERCOM4_INTREQ_IRQHandler
    IRQ SERCOM5_INTREQ_IRQHandler
    IRQ TCC0_INTREQ_IRQHandler
    IRQ TCC1_INTREQ_IRQHandler
    IRQ TCC2_INTREQ_IRQHandler
    IRQ TC3_INTREQ_IRQHandler
    IRQ TC4_INTREQ_IRQHandler
    IRQ TC5_INTREQ_IRQHandler
    IRQ TC6_INTREQ_IRQHandler
    IRQ TC7_INTREQ_IRQHandler
    IRQ ADC_INTREQ_IRQHandler
    IRQ AC_INTREQ_IRQHandler
    IRQ DAC_INTREQ_IRQHandler

.size __isr_vector, .-__isr_vector
