aboutsummaryrefslogtreecommitdiff
path: root/src/target
diff options
context:
space:
mode:
authorSpencer Oliver <spen@spen-soft.co.uk>2012-02-14 15:34:03 +0000
committerSpencer Oliver <spen@spen-soft.co.uk>2012-02-16 08:58:06 +0000
commit0a98914700d7e77da6e49a55aaf56e550ed725ea (patch)
tree8dced88988ea979abb1222535ec542b5c44c9908 /src/target
parentfd39a5e8addce366467ad7305eb270ddd635f4a9 (diff)
stlink: add arm semi-hosting support
Change-Id: Ib275d451a9201580f08ced090e50cf45eb3ab3e2 Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk> Reviewed-on: http://openocd.zylin.com/459 Tested-by: jenkins
Diffstat (limited to 'src/target')
-rw-r--r--src/target/stm32_stlink.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/target/stm32_stlink.c b/src/target/stm32_stlink.c
index 2c4824c1..32896cc3 100644
--- a/src/target/stm32_stlink.c
+++ b/src/target/stm32_stlink.c
@@ -36,6 +36,7 @@
#include "target_type.h"
#include "armv7m.h"
#include "cortex_m.h"
+#include "arm_semihosting.h"
static inline struct stlink_interface_s *target_to_stlink(struct target *target)
{
@@ -387,7 +388,12 @@ static int stm32_stlink_poll(struct target *target)
if (state == TARGET_HALTED) {
target->state = state;
- stlink_debug_entry(target);
+ int retval = stlink_debug_entry(target);
+ if (retval != ERROR_OK)
+ return retval;
+
+ if (arm_semihosting(target, &retval) != 0)
+ return retval;
target_call_event_callbacks(target, TARGET_EVENT_HALTED);
LOG_DEBUG("halted: PC: 0x%x", buf_get_u32(armv7m->arm.pc->value, 0, 32));