From 32345c225137c59bbdc9e3f8c761f29606eb3aaa Mon Sep 17 00:00:00 2001 From: batt Date: Mon, 29 Mar 2010 20:57:12 +0000 Subject: [PATCH] Add IRQ vectors for AT91. git-svn-id: https://src.develer.com/svnoss/bertos/trunk@3307 38d2e660-2303-0410-9eaa-f027e97ec537 --- bertos/cpu/arm/hw/vectors_at91.S | 68 ++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 bertos/cpu/arm/hw/vectors_at91.S diff --git a/bertos/cpu/arm/hw/vectors_at91.S b/bertos/cpu/arm/hw/vectors_at91.S new file mode 100644 index 00000000..85b8825c --- /dev/null +++ b/bertos/cpu/arm/hw/vectors_at91.S @@ -0,0 +1,68 @@ +/** + * \file + * + * + * \author Francesco Sacchi + * + * \brief Atmel AT91SAM interrupt vectors. + */ + +/* + * Section 0: Vector table and reset entry. + */ + .section .vectors,"ax",%progbits + + .global __vectors +__vectors: + ldr pc, [pc, #24] /* Reset */ + ldr pc, [pc, #24] /* Undefined instruction */ + ldr pc, [pc, #24] /* Software interrupt */ + ldr pc, [pc, #24] /* Prefetch abort */ + ldr pc, [pc, #24] /* 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. */ + + .word __init + .word __undef + .word __swi + .word __prefetch_abort + .word __data_abort + + + .ltorg -- 2.25.1