/** * \file * * * \author Francesco Sacchi * * \brief Atmel AT91SAM interrupt vectors. */ #include "cfg/cfg_arch.h" #if defined(ARCH_NIGHTTEST) && (ARCH & ARCH_NIGHTTEST) /* Avoid errors during nigthly test */ #define __vectors __vectors_at91 #endif /* * Section 0: Vector table and reset entry. */ .section .vectors,"ax",%progbits .global __vectors __vectors: ldr pc, _init /* Reset */ ldr pc, _undef /* Undefined instruction */ ldr pc, _swi /* Software interrupt */ ldr pc, _prefetch_abort /* Prefetch abort */ ldr pc, _data_abort /* Data abort */ .word 0 /* Reserved */ /* * On IRQ the PC will be loaded from AIC_IVR, which * provides the address previously set in AIC_SVR. * The interrupt routine will be called in ARM_MODE_IRQ * with IRQ disabled and FIQ unchanged. */ ldr pc, [pc, #-0xF20] /* Interrupt request, auto vectoring. */ ldr pc, [pc, #-0xF20] /* Fast interrupt request, auto vectoring. */ _init: .word __init _undef: .word __undef _swi: .word __swi _prefetch_abort: .word __prefetch_abort _data_abort: .word __data_abort .ltorg