]> git.sur5r.net Git - openocd/commitdiff
- correctly initialize start address for XScale trace buffer decodes in fill-once...
authordrath <drath@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Tue, 21 Aug 2007 16:21:05 +0000 (16:21 +0000)
committerdrath <drath@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Tue, 21 Aug 2007 16:21:05 +0000 (16:21 +0000)
git-svn-id: svn://svn.berlios.de/openocd/trunk@202 b42882b7-edfa-0310-969c-e2dbd0fdcd60

src/openocd.c
src/target/xscale.c

index 30e63adcdfc93a04e2888b9aa3d61a8b63144d76..94dfa8ad6bf7f7f41d22457349be70a638385774 100644 (file)
@@ -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"
index 59f1795e267d2d1f97df5ed8e07057d84605943e..b207dbb260b3795b7e722cefa58184e0673407b9 100644 (file)
@@ -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");