From d75b9ec69713a5ab07f1ea94d0b94d0796e6195f Mon Sep 17 00:00:00 2001 From: Øyvind Harboe Date: Thu, 8 Oct 2009 13:56:57 +0200 Subject: Update copyright statements. Make it easier to sync with Jim Tcl --- src/helper/jim.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/helper/jim.c b/src/helper/jim.c index c1ba0d9d..48e21e9e 100644 --- a/src/helper/jim.c +++ b/src/helper/jim.c @@ -3,11 +3,14 @@ * Copyright 2005 Salvatore Sanfilippo * Copyright 2005 Clemens Hintze * Copyright 2005 patthoyts - Pat Thoyts - * Copyright 2008 oharboe - Øyvind Harboe - oyvind.harboe@zylin.com + * Copyright 2008,2009 oharboe - Øyvind Harboe - oyvind.harboe@zylin.com * Copyright 2008 Andrew Lunn * Copyright 2008 Duane Ellis * Copyright 2008 Uwe Klein * Copyright 2008 Steve Bennett + * Copyright 2009 Nico Coesel + * Copyright 2009 Zachary T Welch zw@superlucidity.net + * Copyright 2009 David Brownell * * The FreeBSD license * -- cgit v1.2.3-18-g5258 From f525f2ef0d95f68d5db02849133f730baa245812 Mon Sep 17 00:00:00 2001 From: Øyvind Harboe Date: Thu, 8 Oct 2009 14:53:25 +0200 Subject: Stop GDB when polling fails, srst assert or powerdropout is detected --- src/server/gdb_server.c | 2 +- src/target/target.c | 18 ++++++++++++++++-- src/target/target.h | 10 ++++++++-- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c index 44d9de83..a0077e93 100644 --- a/src/server/gdb_server.c +++ b/src/server/gdb_server.c @@ -714,7 +714,7 @@ int gdb_target_callback_event_handler(struct target_s *target, enum target_event target_handle_event(target, event); switch (event) { - case TARGET_EVENT_EARLY_HALTED: + case TARGET_EVENT_GDB_HALT: gdb_frontend_halted(target, connection); break; case TARGET_EVENT_HALTED: diff --git a/src/target/target.c b/src/target/target.c index 0040ba0a..253a7e46 100644 --- a/src/target/target.c +++ b/src/target/target.c @@ -157,7 +157,7 @@ static const Jim_Nvp nvp_target_event[] = { { .value = TARGET_EVENT_OLD_gdb_program_config , .name = "old-gdb_program_config" }, { .value = TARGET_EVENT_OLD_pre_resume , .name = "old-pre_resume" }, - { .value = TARGET_EVENT_EARLY_HALTED, .name = "early-halted" }, + { .value = TARGET_EVENT_GDB_HALT, .name = "gdb-halt" }, { .value = TARGET_EVENT_HALTED, .name = "halted" }, { .value = TARGET_EVENT_RESUMED, .name = "resumed" }, { .value = TARGET_EVENT_RESUME_START, .name = "resume-start" }, @@ -821,7 +821,7 @@ int target_call_event_callbacks(target_t *target, enum target_event event) if (event == TARGET_EVENT_HALTED) { /* execute early halted first */ - target_call_event_callbacks(target, TARGET_EVENT_EARLY_HALTED); + target_call_event_callbacks(target, TARGET_EVENT_GDB_HALT); } LOG_DEBUG("target event %i (%s)", @@ -1658,6 +1658,15 @@ static int sense_handler(void) return ERROR_OK; } +static void target_call_event_callbacks_all(enum target_event e) { + target_t *target; + target = all_targets; + while (target) { + target_call_event_callbacks(target, e); + target = target->next; + } +} + /* process target state changes */ int handle_target(void *priv) { @@ -1676,6 +1685,7 @@ int handle_target(void *priv) int did_something = 0; if (runSrstAsserted) { + target_call_event_callbacks_all(TARGET_EVENT_GDB_HALT); Jim_Eval(interp, "srst_asserted"); did_something = 1; } @@ -1686,6 +1696,7 @@ int handle_target(void *priv) } if (runPowerDropout) { + target_call_event_callbacks_all(TARGET_EVENT_GDB_HALT); Jim_Eval(interp, "power_dropout"); did_something = 1; } @@ -1726,7 +1737,10 @@ int handle_target(void *priv) { /* polling may fail silently until the target has been examined */ if ((retval = target_poll(target)) != ERROR_OK) + { + target_call_event_callbacks(target, TARGET_EVENT_GDB_HALT); return retval; + } } } diff --git a/src/target/target.h b/src/target/target.h index 0ff2258a..6547d4d7 100644 --- a/src/target/target.h +++ b/src/target/target.h @@ -163,8 +163,14 @@ enum target_event /* allow GDB to do stuff before others handle the halted event, * this is in lieu of defining ordering of invocation of events, - * which would be more complicated */ - TARGET_EVENT_EARLY_HALTED, + * which would be more complicated + * + * Telling GDB to halt does not mean that the target stopped running, + * simply that we're dropping out of GDB's waiting for step or continue. + * + * This can be useful when e.g. detecting power dropout. + */ + TARGET_EVENT_GDB_HALT, TARGET_EVENT_HALTED, /* target entered debug state from normal execution or reset */ TARGET_EVENT_RESUMED, /* target resumed to normal execution */ TARGET_EVENT_RESUME_START, -- cgit v1.2.3-18-g5258 From cf7eae176e993242c2bf1034e59cbbb498baa1f2 Mon Sep 17 00:00:00 2001 From: Øyvind Harboe Date: Thu, 8 Oct 2009 15:27:09 +0200 Subject: Add .project to .gitignore --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index e0643331..39f10adf 100644 --- a/.gitignore +++ b/.gitignore @@ -47,3 +47,7 @@ stamp-h1 stamp-vti INSTALL NOTES + +# Eclipse stuff +.project + -- cgit v1.2.3-18-g5258 From 4aacf01e194d09fb55dc759fc42ac42c8432c015 Mon Sep 17 00:00:00 2001 From: Øyvind Harboe Date: Thu, 8 Oct 2009 15:43:51 +0200 Subject: Testing committing changes to .gitignore to ignore more build output --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 39f10adf..f0926971 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,8 @@ doc/openocd.fn doc/openocd.fns doc/openocd.html doc/openocd.info +doc/openocd.info-1 +doc/openocd.info-2 doc/openocd.ky doc/openocd.log doc/openocd.pdf -- cgit v1.2.3-18-g5258