This is an automated email from Gerrit.

Tarek BOCHKATI ([email protected]) just uploaded a new patch set to 
Gerrit, which you can find at http://openocd.zylin.com/6059

-- gerrit

commit 0bd0a994b06601657caaa6e06c77f5990db4d37d
Author: Tarek BOCHKATI <[email protected]>
Date:   Fri Feb 12 21:12:43 2021 +0100

    cortex_m: avoid reading and writing non-existent registers
    
    Change-Id: Iedc24352c8d3444372da06d00fcec9603540f950
    Signed-off-by: Tarek BOCHKATI <[email protected]>

diff --git a/src/target/armv7m.c b/src/target/armv7m.c
index f14ce0d..fedbdf5 100644
--- a/src/target/armv7m.c
+++ b/src/target/armv7m.c
@@ -166,10 +166,10 @@ int armv7m_restore_context(struct target *target)
         * packing of ARMV7M_PMSK_BPRI_FLTMSK_CTRL!
         * See also comments in the register table above */
        for (i = cache->num_regs - 1; i >= 0; i--) {
-               if (cache->reg_list[i].dirty) {
-                       armv7m->arm.write_core_reg(target, &cache->reg_list[i], 
i,
-                                                  ARM_MODE_ANY, 
cache->reg_list[i].value);
-               }
+               struct reg *reg = &cache->reg_list[i];
+
+               if (reg->exist && reg->dirty)
+                       armv7m->arm.write_core_reg(target, reg, i, 
ARM_MODE_ANY, reg->value);
        }
 
        return ERROR_OK;
diff --git a/src/target/cortex_m.c b/src/target/cortex_m.c
index ce2c426..dc60829 100644
--- a/src/target/cortex_m.c
+++ b/src/target/cortex_m.c
@@ -521,7 +521,7 @@ static int cortex_m_debug_entry(struct target *target)
 
        for (i = 0; i < num_regs; i++) {
                r = &armv7m->arm.core_cache->reg_list[i];
-               if (!r->valid)
+               if (r->exist && !r->valid)
                        arm->read_core_reg(target, r, i, ARM_MODE_ANY);
        }
 

-- 


_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to