summaryrefslogtreecommitdiff
path: root/src/target/target.h
diff options
context:
space:
mode:
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-03-10 14:07:28 +0000
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-03-10 14:07:28 +0000
commite6dac739cffdecc0c65254eb7b3f2942cfff0f68 (patch)
tree1f991f0dea21966de4845a93843ce196197022e2 /src/target/target.h
parent0424155dfc29ab8e3b5e4b7f36f9164df7b5b740 (diff)
downloadopenocd_libswd-e6dac739cffdecc0c65254eb7b3f2942cfff0f68.tar.gz
openocd_libswd-e6dac739cffdecc0c65254eb7b3f2942cfff0f68.tar.bz2
openocd_libswd-e6dac739cffdecc0c65254eb7b3f2942cfff0f68.tar.xz
openocd_libswd-e6dac739cffdecc0c65254eb7b3f2942cfff0f68.zip
- the jtag chain is examined and validated after GDB & telnet servers
are up and running. The examination and validation is actually "optional" from the point of view of GDB + telnet servers. Multiple targets should work fine with this. - jtag_speed is dropped(divisor is increased), if jtag examination and validation fails. - the chain is validated 10x to catch the worst jtag_speed offences - added LOG_SILENT that can be used to shut up log. Feeble ersatz for try+catch. - GDB register packets are now always replied in order to make sure that GDB connect works. If the target is not halted, then these packets contain dummy values. git-svn-id: svn://svn.berlios.de/openocd/trunk@483 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src/target/target.h')
-rw-r--r--src/target/target.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/target/target.h b/src/target/target.h
index 8d70e77e..e0286650 100644
--- a/src/target/target.h
+++ b/src/target/target.h
@@ -127,7 +127,15 @@ typedef struct target_type_s
int (*soft_reset_halt)(struct target_s *target);
int (*prepare_reset_halt)(struct target_s *target);
- /* target register access for gdb */
+ /* target register access for gdb.
+ *
+ * Danger! this function will succeed even if the target is running
+ * and return a register list with dummy values.
+ *
+ * The reason is that GDB connection will fail without a valid register
+ * list, however it is after GDB is connected that monitor commands can
+ * be run to properly initialize the target
+ */
int (*get_gdb_reg_list)(struct target_s *target, struct reg_s **reg_list[], int *reg_list_size);
/* target memory access