diff --git a/arch/arm/src/imxrt/imxrt_irq.c b/arch/arm/src/imxrt/imxrt_irq.c index 1188bce4e8e..18da0f14881 100644 --- a/arch/arm/src/imxrt/imxrt_irq.c +++ b/arch/arm/src/imxrt/imxrt_irq.c @@ -436,7 +436,7 @@ void up_irqinitialize(void) * vector table that requires special initialization. */ - arm_ramvec_initialize(); + putreg32((uint32_t)g_ram_vectors, NVIC_VECTAB); #endif /* Set all interrupts (and exceptions) to the default priority */ diff --git a/arch/arm/src/imxrt/imxrt_start.c b/arch/arm/src/imxrt/imxrt_start.c index ff9435bbabc..038fbc4aa73 100644 --- a/arch/arm/src/imxrt/imxrt_start.c +++ b/arch/arm/src/imxrt/imxrt_start.c @@ -37,6 +37,7 @@ #include "arm_internal.h" #include "nvic.h" +#include "ram_vectors.h" #include "imxrt_clockconfig.h" #include "imxrt_mpuinit.h" @@ -216,6 +217,10 @@ void __start(void) } #endif +#ifdef CONFIG_ARCH_RAMVECTORS + arm_ramvec_initialize(); +#endif + #ifdef CONFIG_ARMV7M_STACKCHECK arm_stack_check_init(); #endif