- fixed endianness helper macros (thanks to obilix and wiml for finding and fixing this bug)
- added declarations for 32bit fileio access functions (network byte order) - fixed bug in etm trace dump file handling - added XScale trace buffer decoding - fixed arm_simulator ERROR numbers (-7xx used twice) - fixed minor bug in debug output in stellaris.c git-svn-id: svn://svn.berlios.de/openocd/trunk@178 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
@@ -24,6 +24,8 @@
|
||||
#include "register.h"
|
||||
#include "armv4_5.h"
|
||||
#include "armv4_5_mmu.h"
|
||||
#include "trace.h"
|
||||
#include "image.h"
|
||||
|
||||
#define XSCALE_COMMON_MAGIC 0x58534341
|
||||
|
||||
@@ -47,6 +49,40 @@ enum xscale_debug_reason
|
||||
XSCALE_DBG_REASON_TB_FULL,
|
||||
};
|
||||
|
||||
enum xscale_trace_entry_type
|
||||
{
|
||||
XSCALE_TRACE_MESSAGE,
|
||||
XSCALE_TRACE_ADDRESS,
|
||||
};
|
||||
|
||||
typedef struct xscale_trace_entry_s
|
||||
{
|
||||
u8 data;
|
||||
enum xscale_trace_entry_type type;
|
||||
} xscale_trace_entry_t;
|
||||
|
||||
typedef struct xscale_trace_data_s
|
||||
{
|
||||
xscale_trace_entry_t *entries;
|
||||
int depth;
|
||||
u32 chkpt0;
|
||||
u32 chkpt1;
|
||||
u32 last_instruction;
|
||||
struct xscale_trace_data_s *next;
|
||||
} xscale_trace_data_t;
|
||||
|
||||
typedef struct xscale_trace_s
|
||||
{
|
||||
trace_status_t capture_status; /* current state of capture run */
|
||||
image_t *image; /* source for target opcodes */
|
||||
xscale_trace_data_t *data; /* linked list of collected trace data */
|
||||
int buffer_enabled; /* whether trace buffer is enabled */
|
||||
int buffer_fill; /* maximum number of trace runs to read (-1 for wrap-around) */
|
||||
int pc_ok;
|
||||
u32 current_pc;
|
||||
armv4_5_state_t core_state; /* current core state (ARM, Thumb, Jazelle) */
|
||||
} xscale_trace_t;
|
||||
|
||||
typedef struct xscale_common_s
|
||||
{
|
||||
int common_magic;
|
||||
@@ -93,9 +129,8 @@ typedef struct xscale_common_s
|
||||
u16 thumb_bkpt;
|
||||
|
||||
u8 vector_catch;
|
||||
|
||||
int trace_buffer_enabled;
|
||||
int trace_buffer_fill;
|
||||
|
||||
xscale_trace_t trace;
|
||||
|
||||
int arch_debug_reason;
|
||||
|
||||
@@ -142,4 +177,6 @@ enum
|
||||
XSCALE_TXRXCTRL,
|
||||
};
|
||||
|
||||
#define ERROR_XSCALE_NO_TRACE_DATA (-1500)
|
||||
|
||||
#endif /* XSCALE_H */
|
||||
|
||||
Reference in New Issue
Block a user