LPC2xxx: Add Vectored Interrupt Controller (VIC) driver.
[bertos.git] / bertos / cpu / arm / hw / vectors_lpc2.S
index 71d700b841e61140665c857417d4ebeb4b51224e..1e6d3eb48bb71d182a027d6344efe968d7e8674b 100644 (file)
  * \brief NXP LPC2xxx interrupt vectors.
  */
 
+#include <cpu/detect.h>
+#include "cfg/cfg_arch.h"
+#if defined(ARCH_NIGHTTEST) && (ARCH & ARCH_NIGHTTEST)
+       /* Avoid errors during nigthly test */
+       #define __vectors __vectors_lpc2
+#endif
+
 /*
  * Section 0: Vector table and reset entry.
  */
@@ -48,8 +55,12 @@ __vectors:
         ldr     pc, _prefetch_abort  /* Prefetch abort */
         ldr     pc, _data_abort      /* Data abort */
         .word  0xb9205f88           /* In LPX2xxx, this location holds the checksum of the previous vectors */
-
+#if CPU_ARM_LPC2378
+        ldr     pc, [pc, #-0x120]    /* Use VIC */
+#else
+       #warning Check correct VICAddress register for this CPU, default set to 0xFFFFF030
         ldr     pc, [pc, #-0xFF0]    /* Use VIC */
+#endif
         ldr     pc, _fiq            /* Fast interrupt request */
 _init:
         .word   __init