aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSpencer Oliver <spen@spen-soft.co.uk>2012-10-25 16:37:14 +0100
committerSpencer Oliver <spen@spen-soft.co.uk>2012-12-23 21:46:02 +0000
commit561984c8f672b5b35a78e80529107ec0599fc037 (patch)
tree71f7dbed34286352d333d855373a7c4bb92d775e /src
parentbd1502eb0fa6b557a7db9e2d8de12ffdf678545c (diff)
hla: fix watchpoints not being set
Watchpoints were not being enabled when the hl adapter target was resumed. This effects both stlink and icdi interfaces. Change-Id: Ia9f8a9415be97a467cd099b63b6bc9f7f37d0c0d Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/931 Tested-by: jenkins
Diffstat (limited to 'src')
-rw-r--r--src/target/cortex_m.c2
-rw-r--r--src/target/cortex_m.h1
-rw-r--r--src/target/hla_target.c6
3 files changed, 8 insertions, 1 deletions
diff --git a/src/target/cortex_m.c b/src/target/cortex_m.c
index 4d9daf5c..ca2211fb 100644
--- a/src/target/cortex_m.c
+++ b/src/target/cortex_m.c
@@ -677,7 +677,7 @@ static int cortex_m3_soft_reset_halt(struct target *target)
return ERROR_OK;
}
-static void cortex_m3_enable_breakpoints(struct target *target)
+void cortex_m3_enable_breakpoints(struct target *target)
{
struct breakpoint *breakpoint = target->breakpoints;
diff --git a/src/target/cortex_m.h b/src/target/cortex_m.h
index a9bd7a49..11d70524 100644
--- a/src/target/cortex_m.h
+++ b/src/target/cortex_m.h
@@ -194,6 +194,7 @@ int cortex_m3_set_watchpoint(struct target *target, struct watchpoint *watchpoin
int cortex_m3_unset_watchpoint(struct target *target, struct watchpoint *watchpoint);
int cortex_m3_add_watchpoint(struct target *target, struct watchpoint *watchpoint);
int cortex_m3_remove_watchpoint(struct target *target, struct watchpoint *watchpoint);
+void cortex_m3_enable_breakpoints(struct target *target);
void cortex_m3_enable_watchpoints(struct target *target);
void cortex_m3_dwt_setup(struct cortex_m3_common *cm3, struct target *target);
diff --git a/src/target/hla_target.c b/src/target/hla_target.c
index 272c25e0..3c3b8417 100644
--- a/src/target/hla_target.c
+++ b/src/target/hla_target.c
@@ -551,6 +551,12 @@ static int adapter_resume(struct target *target, int current,
return ERROR_TARGET_NOT_HALTED;
}
+ if (!debug_execution) {
+ target_free_all_working_areas(target);
+ cortex_m3_enable_breakpoints(target);
+ cortex_m3_enable_watchpoints(target);
+ }
+
pc = armv7m->arm.pc;
if (!current) {
buf_set_u32(pc->value, 0, 32, address);