]> git.sur5r.net Git - openocd/commitdiff
Rick Altherr <kc8apf@kc8apf.net> - In cortex_m3_resume if debug_execution is non...
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Sun, 2 Nov 2008 18:50:26 +0000 (18:50 +0000)
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Sun, 2 Nov 2008 18:50:26 +0000 (18:50 +0000)
git-svn-id: svn://svn.berlios.de/openocd/trunk@1119 b42882b7-edfa-0310-969c-e2dbd0fdcd60

src/target/cortex_m3.c

index ee9ee2577f7cef6599491a73eaee029d74849b20..d97d912cfba3dc7c863dc162c44b3d6035070e4b 100644 (file)
@@ -567,9 +567,14 @@ int cortex_m3_resume(struct target_s *target, int current, u32 address, int hand
                 * This is probably the same inssue as Cortex-M3 Errata 377493: 
                 * C_MASKINTS in parallel with disabled interrupts can cause local faults to not be taken. */
                buf_set_u32(armv7m->core_cache->reg_list[ARMV7M_PRIMASK].value, 0, 32, 1);
+               armv7m->core_cache->reg_list[ARMV7M_PRIMASK].dirty = 1;
+               armv7m->core_cache->reg_list[ARMV7M_PRIMASK].valid = 1;
+
                /* Make sure we are in Thumb mode */
                buf_set_u32(armv7m->core_cache->reg_list[ARMV7M_xPSR].value, 0, 32, 
                        buf_get_u32(armv7m->core_cache->reg_list[ARMV7M_xPSR].value, 0, 32) | (1<<24));
+               armv7m->core_cache->reg_list[ARMV7M_xPSR].dirty = 1;
+               armv7m->core_cache->reg_list[ARMV7M_xPSR].valid = 1;
        }
 
        /* current = 1: continue on current pc, otherwise continue at <address> */