summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-09-26 18:00:10 +0000
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-09-26 18:00:10 +0000
commitc90c48b00bacc8c0aa8b95b3e51c84835410e424 (patch)
tree6bb4ce5b92ef6ee36c74bb95dcff13f3fb1d599a
parente5408ce0b6b4805421fd81fe772b070367854c03 (diff)
downloadopenocd_libswd-c90c48b00bacc8c0aa8b95b3e51c84835410e424.tar.gz
openocd_libswd-c90c48b00bacc8c0aa8b95b3e51c84835410e424.tar.bz2
openocd_libswd-c90c48b00bacc8c0aa8b95b3e51c84835410e424.tar.xz
openocd_libswd-c90c48b00bacc8c0aa8b95b3e51c84835410e424.zip
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
-rw-r--r--src/target/cortex_m3.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/target/cortex_m3.c b/src/target/cortex_m3.c
index e2d906d6..14a781ce 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;