Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
card10
openocd
Commits
dd063d99
Commit
dd063d99
authored
Nov 23, 2009
by
Zachary T Welch
Browse files
etm: use register_commands()
parent
8161fd31
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/target/etm.c
View file @
dd063d99
...
...
@@ -221,8 +221,6 @@ static int etm_register_user_commands(struct command_context *cmd_ctx);
static
int
etm_set_reg_w_exec
(
struct
reg
*
reg
,
uint8_t
*
buf
);
static
int
etm_write_reg
(
struct
reg
*
reg
,
uint32_t
value
);
static
struct
command
*
etm_cmd
;
static
const
struct
reg_arch_type
etm_scan6_type
=
{
.
get
=
etm_get_reg
,
.
set
=
etm_set_reg_w_exec
,
...
...
@@ -2095,45 +2093,99 @@ COMMAND_HANDLER(handle_etm_analyze_command)
return
retval
;
}
static
const
struct
command_registration
etm_config_command_handlers
[]
=
{
{
.
name
=
"config"
,
.
handler
=
&
handle_etm_config_command
,
.
mode
=
COMMAND_CONFIG
,
.
usage
=
"<target> <port_width> <port_mode> "
"<clocking> <capture_driver>"
,
},
COMMAND_REGISTRATION_DONE
};
static
const
struct
command_registration
etm_command_handlers
[]
=
{
{
.
name
=
"etm"
,
.
mode
=
COMMAND_ANY
,
.
help
=
"Emebdded Trace Macrocell command group"
,
.
chain
=
etm_config_command_handlers
,
},
COMMAND_REGISTRATION_DONE
};
int
etm_register_commands
(
struct
command_context
*
cmd_ctx
)
{
etm_cmd
=
COMMAND_REGISTER
(
cmd_ctx
,
NULL
,
"etm"
,
NULL
,
COMMAND_ANY
,
"Embedded Trace Macrocell"
);
COMMAND_REGISTER
(
cmd_ctx
,
etm_cmd
,
"config"
,
handle_etm_config_command
,
COMMAND_CONFIG
,
"etm config <target> <port_width> <port_mode> <clocking> <capture_driver>"
);
return
ERROR_OK
;
return
register_commands
(
cmd_ctx
,
NULL
,
etm_command_handlers
);
}
static
const
struct
command_registration
etm_exec_command_handlers
[]
=
{
{
.
name
=
"tracemode"
,
handle_etm_tracemode_command
,
.
mode
=
COMMAND_EXEC
,
.
help
=
"configure/display trace mode"
,
.
usage
=
"<none | data | address | all> "
"<context_id_bits> <cycle_accurate> <branch_output>"
,
},
{
.
name
=
"info"
,
.
handler
=
&
handle_etm_info_command
,
.
mode
=
COMMAND_EXEC
,
.
help
=
"display info about the current target's ETM"
,
},
{
.
name
=
"trigger_percent"
,
.
handler
=
&
handle_etm_trigger_percent_command
,
.
mode
=
COMMAND_EXEC
,
.
help
=
"amount (<percent>) of trace buffer "
"to be filled after the trigger occured"
,
},
{
.
name
=
"status"
,
.
handler
=
&
handle_etm_status_command
,
.
mode
=
COMMAND_EXEC
,
.
help
=
"display current target's ETM status"
,
},
{
.
name
=
"start"
,
.
handler
=
&
handle_etm_start_command
,
.
mode
=
COMMAND_EXEC
,
.
help
=
"start ETM trace collection"
,
},
{
.
name
=
"stop"
,
.
handler
=
&
handle_etm_stop_command
,
.
mode
=
COMMAND_EXEC
,
.
help
=
"stop ETM trace collection"
,
},
{
.
name
=
"analyze"
,
.
handler
=
&
handle_etm_analyze_command
,
.
mode
=
COMMAND_EXEC
,
.
help
=
"anaylze collected ETM trace"
,
},
{
.
name
=
"image"
,
.
handler
=
&
handle_etm_image_command
,
.
mode
=
COMMAND_EXEC
,
.
help
=
"load image from <file> [base address]"
,
},
{
.
name
=
"dump"
,
.
handler
=
&
handle_etm_dump_command
,
.
mode
=
COMMAND_EXEC
,
.
help
=
"dump captured trace data <file>"
,
},
{
.
name
=
"load"
,
.
handler
=
&
handle_etm_load_command
,
.
mode
=
COMMAND_EXEC
,
.
help
=
"load trace data for analysis <file>"
,
},
COMMAND_REGISTRATION_DONE
};
static
int
etm_register_user_commands
(
struct
command_context
*
cmd_ctx
)
{
COMMAND_REGISTER
(
cmd_ctx
,
etm_cmd
,
"tracemode"
,
handle_etm_tracemode_command
,
COMMAND_EXEC
,
"configure/display trace mode: "
"<none | data | address | all> "
"<context_id_bits> <cycle_accurate> <branch_output>"
);
COMMAND_REGISTER
(
cmd_ctx
,
etm_cmd
,
"info"
,
handle_etm_info_command
,
COMMAND_EXEC
,
"display info about the current target's ETM"
);
COMMAND_REGISTER
(
cmd_ctx
,
etm_cmd
,
"trigger_percent"
,
handle_etm_trigger_percent_command
,
COMMAND_EXEC
,
"amount (<percent>) of trace buffer to be filled after the trigger occured"
);
COMMAND_REGISTER
(
cmd_ctx
,
etm_cmd
,
"status"
,
handle_etm_status_command
,
COMMAND_EXEC
,
"display current target's ETM status"
);
COMMAND_REGISTER
(
cmd_ctx
,
etm_cmd
,
"start"
,
handle_etm_start_command
,
COMMAND_EXEC
,
"start ETM trace collection"
);
COMMAND_REGISTER
(
cmd_ctx
,
etm_cmd
,
"stop"
,
handle_etm_stop_command
,
COMMAND_EXEC
,
"stop ETM trace collection"
);
COMMAND_REGISTER
(
cmd_ctx
,
etm_cmd
,
"analyze"
,
handle_etm_analyze_command
,
COMMAND_EXEC
,
"anaylze collected ETM trace"
);
COMMAND_REGISTER
(
cmd_ctx
,
etm_cmd
,
"image"
,
handle_etm_image_command
,
COMMAND_EXEC
,
"load image from <file> [base address]"
);
COMMAND_REGISTER
(
cmd_ctx
,
etm_cmd
,
"dump"
,
handle_etm_dump_command
,
COMMAND_EXEC
,
"dump captured trace data <file>"
);
COMMAND_REGISTER
(
cmd_ctx
,
etm_cmd
,
"load"
,
handle_etm_load_command
,
COMMAND_EXEC
,
"load trace data for analysis <file>"
);
return
ERROR_OK
;
struct
command
*
etm_cmd
=
command_find_in_context
(
cmd_ctx
,
"etm"
);
return
register_commands
(
cmd_ctx
,
etm_cmd
,
etm_exec_command_handlers
);
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment