This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit 073e58a83f04fe2df5ac90ba13db970af47fe691
Author: Peter van der Perk <peter.vanderp...@nxp.com>
AuthorDate: Mon May 26 09:37:35 2025 +0200

    arch/arm/imxrt: support ramvectors in ITCM memory
    
    This is done by initializing the ramvectors earlier in start so that
    we can access the ITCM before the MPU gets configured
---
 arch/arm/src/imxrt/imxrt_irq.c   | 2 +-
 arch/arm/src/imxrt/imxrt_start.c | 5 +++++
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/arch/arm/src/imxrt/imxrt_irq.c b/arch/arm/src/imxrt/imxrt_irq.c
index 1188bce4e8..18da0f1488 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 ff9435bbab..038fbc4aa7 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

Reply via email to