From 67607fb64c92e069b693423642e5da6ca5a3be25 Mon Sep 17 00:00:00 2001 From: Spencer Oliver Date: Thu, 25 Apr 2013 17:13:41 +0100 Subject: [PATCH 1/1] cortex_m: remove old target breakpoints/watchpoints Sometimes the target may have breakpoint registers set from a previous debug session, we can either sync them or as we have chosen here clear them. Change-Id: I439a623ebbf010246a70e5596d04aa7d546da731 Signed-off-by: Spencer Oliver Reviewed-on: http://openocd.zylin.com/1363 Tested-by: jenkins Reviewed-by: Paul Fertser Reviewed-by: Freddie Chopin --- src/target/cortex_m.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/target/cortex_m.c b/src/target/cortex_m.c index c436bad482..7094b0708f 100644 --- a/src/target/cortex_m.c +++ b/src/target/cortex_m.c @@ -1796,6 +1796,9 @@ fail1: for (j = 0; j < 3; j++, reg++) cortex_m3_dwt_addreg(target, cache->reg_list + reg, dwt_comp + 3 * i + j); + + /* make sure we clear any watchpoints enabled on the target */ + target_write_u32(target, comparator->dwt_comparator_address + 8, 0); } *register_get_last_cache_p(&target->reg_cache) = cache; @@ -1887,6 +1890,9 @@ int cortex_m3_examine(struct target *target) cortex_m3->fp_comparator_list[i].type = (i < cortex_m3->fp_num_code) ? FPCR_CODE : FPCR_LITERAL; cortex_m3->fp_comparator_list[i].fpcr_address = FP_COMP0 + 4 * i; + + /* make sure we clear any breakpoints enabled on the target */ + target_write_u32(target, cortex_m3->fp_comparator_list[i].fpcr_address, 0); } LOG_DEBUG("FPB fpcr 0x%" PRIx32 ", numcode %i, numlit %i", fpcr, -- 2.30.2