diff options
author | drath <drath@b42882b7-edfa-0310-969c-e2dbd0fdcd60> | 2007-08-21 16:21:05 +0000 |
---|---|---|
committer | drath <drath@b42882b7-edfa-0310-969c-e2dbd0fdcd60> | 2007-08-21 16:21:05 +0000 |
commit | ecfc1e39a2621cf3f2d2c67841cc31cb670326c0 (patch) | |
tree | 8776c39a78f842a99e7a393c19112a9681c60c0d /src | |
parent | 580bb852019869a2dafa73d5725439a29ec9c873 (diff) | |
download | openocd_libswd-ecfc1e39a2621cf3f2d2c67841cc31cb670326c0.tar.gz openocd_libswd-ecfc1e39a2621cf3f2d2c67841cc31cb670326c0.tar.bz2 openocd_libswd-ecfc1e39a2621cf3f2d2c67841cc31cb670326c0.tar.xz openocd_libswd-ecfc1e39a2621cf3f2d2c67841cc31cb670326c0.zip |
- correctly initialize start address for XScale trace buffer decodes in fill-once mode
git-svn-id: svn://svn.berlios.de/openocd/trunk@202 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src')
-rw-r--r-- | src/openocd.c | 2 | ||||
-rw-r--r-- | src/target/xscale.c | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/openocd.c b/src/openocd.c index 30e63adc..94dfa8ad 100644 --- a/src/openocd.c +++ b/src/openocd.c @@ -18,7 +18,7 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#define OPENOCD_VERSION "Open On-Chip Debugger (2007-08-17 11:00 CEST)" +#define OPENOCD_VERSION "Open On-Chip Debugger (2007-08-21 18:30 CEST)" #ifdef HAVE_CONFIG_H #include "config.h" diff --git a/src/target/xscale.c b/src/target/xscale.c index 59f1795e..b207dbb2 100644 --- a/src/target/xscale.c +++ b/src/target/xscale.c @@ -3440,6 +3440,19 @@ int xscale_handle_trace_buffer_command(struct command_context_s *cmd_ctx, char * xscale->trace.buffer_fill = -1; } + if (xscale->trace.buffer_enabled) + { + /* if we enable the trace buffer in fill-once + * mode we know the address of the first instruction */ + xscale->trace.pc_ok = 1; + xscale->trace.current_pc = buf_get_u32(armv4_5->core_cache->reg_list[15].value, 0, 32); + } + else + { + /* otherwise the address is unknown, and we have no known good PC */ + xscale->trace.pc_ok = 0; + } + command_print(cmd_ctx, "trace buffer %s (%s)", (xscale->trace.buffer_enabled) ? "enabled" : "disabled", (xscale->trace.buffer_fill > 0) ? "fill" : "wrap"); |