mirror of
https://github.com/linux-msm/openocd.git
synced 2026-02-25 13:15:07 -08:00
ETM cleanup
Various cleanups of ETM related code. - Saner error return paths - Simplify arm7_9 init ... no need for extra zeroing! - Shrink some lines - Tweak some diagnostics - Use shorter name for ETM struct type. - Don't exit() and similar. The diagnostics look forward to having this ETM code work with more than just ARM7/ARM9. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
This commit is contained in:
@@ -3098,50 +3098,25 @@ int arm7_9_init_arch_info(target_t *target, arm7_9_common_t *arm7_9)
|
||||
arm7_9->common_magic = ARM7_9_COMMON_MAGIC;
|
||||
|
||||
if ((retval = arm_jtag_setup_connection(&arm7_9->jtag_info)) != ERROR_OK)
|
||||
{
|
||||
return retval;
|
||||
}
|
||||
|
||||
arm7_9->wp_available = 0; /* this is set up in arm7_9_clear_watchpoints() */
|
||||
/* caller must have allocated via calloc(), so everything's zeroed */
|
||||
|
||||
arm7_9->wp_available_max = 2;
|
||||
arm7_9->sw_breakpoints_added = 0;
|
||||
arm7_9->sw_breakpoint_count = 0;
|
||||
arm7_9->breakpoint_count = 0;
|
||||
arm7_9->wp0_used = 0;
|
||||
arm7_9->wp1_used = 0;
|
||||
arm7_9->wp1_used_default = 0;
|
||||
arm7_9->use_dbgrq = 0;
|
||||
|
||||
arm7_9->etm_ctx = NULL;
|
||||
arm7_9->has_single_step = 0;
|
||||
arm7_9->has_monitor_mode = 0;
|
||||
arm7_9->has_vector_catch = 0;
|
||||
|
||||
arm7_9->debug_entry_from_reset = 0;
|
||||
|
||||
arm7_9->dcc_working_area = NULL;
|
||||
|
||||
arm7_9->fast_memory_access = fast_and_dangerous;
|
||||
arm7_9->dcc_downloads = fast_and_dangerous;
|
||||
|
||||
arm7_9->need_bypass_before_restart = 0;
|
||||
|
||||
armv4_5->arch_info = arm7_9;
|
||||
armv4_5->read_core_reg = arm7_9_read_core_reg;
|
||||
armv4_5->write_core_reg = arm7_9_write_core_reg;
|
||||
armv4_5->full_context = arm7_9_full_context;
|
||||
|
||||
if ((retval = armv4_5_init_arch_info(target, armv4_5)) != ERROR_OK)
|
||||
{
|
||||
return retval;
|
||||
}
|
||||
|
||||
if ((retval = target_register_timer_callback(arm7_9_handle_target_request, 1, 1, target)) != ERROR_OK)
|
||||
{
|
||||
return retval;
|
||||
}
|
||||
|
||||
return ERROR_OK;
|
||||
return target_register_timer_callback(arm7_9_handle_target_request,
|
||||
1, 1, target);
|
||||
}
|
||||
|
||||
int arm7_9_register_commands(struct command_context_s *cmd_ctx)
|
||||
|
||||
@@ -20,8 +20,6 @@
|
||||
#ifndef ETB_H
|
||||
#define ETB_H
|
||||
|
||||
#include "etm.h"
|
||||
|
||||
/* ETB registers */
|
||||
enum
|
||||
{
|
||||
|
||||
202
src/target/etm.c
202
src/target/etm.c
File diff suppressed because it is too large
Load Diff
@@ -115,17 +115,17 @@ typedef enum
|
||||
} etmv1_tracemode_t;
|
||||
|
||||
/* forward-declare ETM context */
|
||||
struct etm_context_s;
|
||||
struct etm;
|
||||
|
||||
typedef struct etm_capture_driver_s
|
||||
{
|
||||
char *name;
|
||||
int (*register_commands)(struct command_context_s *cmd_ctx);
|
||||
int (*init)(struct etm_context_s *etm_ctx);
|
||||
trace_status_t (*status)(struct etm_context_s *etm_ctx);
|
||||
int (*read_trace)(struct etm_context_s *etm_ctx);
|
||||
int (*start_capture)(struct etm_context_s *etm_ctx);
|
||||
int (*stop_capture)(struct etm_context_s *etm_ctx);
|
||||
int (*init)(struct etm *etm_ctx);
|
||||
trace_status_t (*status)(struct etm *etm_ctx);
|
||||
int (*read_trace)(struct etm *etm_ctx);
|
||||
int (*start_capture)(struct etm *etm_ctx);
|
||||
int (*stop_capture)(struct etm *etm_ctx);
|
||||
} etm_capture_driver_t;
|
||||
|
||||
enum
|
||||
@@ -146,7 +146,7 @@ typedef struct etmv1_trace_data_s
|
||||
* this will have to be split into version independent elements
|
||||
* and a version specific part
|
||||
*/
|
||||
typedef struct etm_context_s
|
||||
typedef struct etm
|
||||
{
|
||||
target_t *target; /* target this ETM is connected to */
|
||||
reg_cache_t *reg_cache; /* ETM register cache */
|
||||
|
||||
Reference in New Issue
Block a user