From c90c48b00bacc8c0aa8b95b3e51c84835410e424 Mon Sep 17 00:00:00 2001
From: oharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Date: Fri, 26 Sep 2008 18:00:10 +0000
Subject: [PATCH]  I do not know why this is necessary, but it fixes strange
 effects 		       (step/resume cause a NMI after reset) on
 LM3S6918 -- Michael Schwingen

git-svn-id: svn://svn.berlios.de/openocd/trunk@1008 b42882b7-edfa-0310-969c-e2dbd0fdcd60
---
 src/target/cortex_m3.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/target/cortex_m3.c b/src/target/cortex_m3.c
index e2d906d62..14a781cef 100644
--- a/src/target/cortex_m3.c
+++ b/src/target/cortex_m3.c
@@ -376,7 +376,7 @@ int cortex_m3_debug_entry(target_t *target)
 int cortex_m3_poll(target_t *target)
 {
 	int retval;
-	u32 prev_target_state = target->state;
+	enum target_state prev_target_state = target->state;
 	
 	/* get pointers to arch-specific information */
 	armv7m_common_t *armv7m = target->arch_info;
@@ -762,6 +762,13 @@ int cortex_m3_assert_reset(target_t *target)
 		/* this causes the luminary device to reset using the watchdog */
 		ahbap_write_system_atomic_u32(swjdp, NVIC_AIRCR, AIRCR_VECTKEY | AIRCR_SYSRESETREQ );
 		LOG_DEBUG("Using Luminary Reset: SYSRESETREQ");
+
+		{
+			/* I do not know why this is necessary, but it fixes strange effects
+		       (step/resume cause a NMI after reset) on LM3S6918 -- Michael Schwingen */
+			u32 tmp;
+			ahbap_read_system_atomic_u32(swjdp, NVIC_AIRCR, &tmp );
+	}
 	}
 	
 	target->state = TARGET_RESET;
-- 
GitLab