X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Ftarget%2Fetm.c;h=6df354a5de84c371a56f92c3d060873e9dc4dda1;hp=3b5fa61f33776741935e65bb982bdd7ce8e222ba;hb=833e7f5248778bcb31b4db1a1b91160995415203;hpb=2861877b32a7a2f4022a1c3d9b66c9b4879878ac diff --git a/src/target/etm.c b/src/target/etm.c index 3b5fa61f33..6df354a5de 100644 --- a/src/target/etm.c +++ b/src/target/etm.c @@ -234,7 +234,7 @@ static const struct reg_arch_type etm_scan6_type = { static struct reg *etm_reg_lookup(struct etm_context *etm_ctx, unsigned id) { struct reg_cache *cache = etm_ctx->reg_cache; - int i; + unsigned i; for (i = 0; i < cache->num_regs; i++) { struct etm_reg *reg = cache->reg_list[i].arch_info; @@ -1214,25 +1214,14 @@ static COMMAND_HELPER(handle_etm_tracemode_command_update, return ERROR_INVALID_ARGUMENTS; } - if (strcmp(CMD_ARGV[2], "enable") == 0) + bool etmv1_cycle_accurate; + COMMAND_PARSE_ENABLE(CMD_ARGV[2], etmv1_cycle_accurate); + if (etmv1_cycle_accurate) tracemode |= ETMV1_CYCLE_ACCURATE; - else if (strcmp(CMD_ARGV[2], "disable") == 0) - tracemode |= 0; - else - { - command_print(CMD_CTX, "invalid option '%s'", CMD_ARGV[2]); - return ERROR_INVALID_ARGUMENTS; - } - if (strcmp(CMD_ARGV[3], "enable") == 0) + bool etmv1_branch_output; + COMMAND_PARSE_ENABLE(CMD_ARGV[3], etmv1_branch_output); tracemode |= ETMV1_BRANCH_OUTPUT; - else if (strcmp(CMD_ARGV[3], "disable") == 0) - tracemode |= 0; - else - { - command_print(CMD_CTX, "invalid option '%s'", CMD_ARGV[3]); - return ERROR_INVALID_ARGUMENTS; - } /* IGNORED: * - CPRT tracing (coprocessor register transfers) @@ -2108,9 +2097,9 @@ COMMAND_HANDLER(handle_etm_analyze_command) int etm_register_commands(struct command_context *cmd_ctx) { - etm_cmd = register_command(cmd_ctx, NULL, "etm", NULL, COMMAND_ANY, "Embedded Trace Macrocell"); + etm_cmd = COMMAND_REGISTER(cmd_ctx, NULL, "etm", NULL, COMMAND_ANY, "Embedded Trace Macrocell"); - register_command(cmd_ctx, etm_cmd, "config", handle_etm_config_command, + COMMAND_REGISTER(cmd_ctx, etm_cmd, "config", handle_etm_config_command, COMMAND_CONFIG, "etm config "); return ERROR_OK; @@ -2118,32 +2107,32 @@ int etm_register_commands(struct command_context *cmd_ctx) static int etm_register_user_commands(struct command_context *cmd_ctx) { - register_command(cmd_ctx, etm_cmd, "tracemode", handle_etm_tracemode_command, + COMMAND_REGISTER(cmd_ctx, etm_cmd, "tracemode", handle_etm_tracemode_command, COMMAND_EXEC, "configure/display trace mode: " " " " "); - register_command(cmd_ctx, etm_cmd, "info", handle_etm_info_command, + COMMAND_REGISTER(cmd_ctx, etm_cmd, "info", handle_etm_info_command, COMMAND_EXEC, "display info about the current target's ETM"); - register_command(cmd_ctx, etm_cmd, "trigger_percent", handle_etm_trigger_percent_command, + COMMAND_REGISTER(cmd_ctx, etm_cmd, "trigger_percent", handle_etm_trigger_percent_command, COMMAND_EXEC, "amount () of trace buffer to be filled after the trigger occured"); - register_command(cmd_ctx, etm_cmd, "status", handle_etm_status_command, + COMMAND_REGISTER(cmd_ctx, etm_cmd, "status", handle_etm_status_command, COMMAND_EXEC, "display current target's ETM status"); - register_command(cmd_ctx, etm_cmd, "start", handle_etm_start_command, + COMMAND_REGISTER(cmd_ctx, etm_cmd, "start", handle_etm_start_command, COMMAND_EXEC, "start ETM trace collection"); - register_command(cmd_ctx, etm_cmd, "stop", handle_etm_stop_command, + COMMAND_REGISTER(cmd_ctx, etm_cmd, "stop", handle_etm_stop_command, COMMAND_EXEC, "stop ETM trace collection"); - register_command(cmd_ctx, etm_cmd, "analyze", handle_etm_analyze_command, + COMMAND_REGISTER(cmd_ctx, etm_cmd, "analyze", handle_etm_analyze_command, COMMAND_EXEC, "anaylze collected ETM trace"); - register_command(cmd_ctx, etm_cmd, "image", handle_etm_image_command, + COMMAND_REGISTER(cmd_ctx, etm_cmd, "image", handle_etm_image_command, COMMAND_EXEC, "load image from [base address]"); - register_command(cmd_ctx, etm_cmd, "dump", handle_etm_dump_command, + COMMAND_REGISTER(cmd_ctx, etm_cmd, "dump", handle_etm_dump_command, COMMAND_EXEC, "dump captured trace data "); - register_command(cmd_ctx, etm_cmd, "load", handle_etm_load_command, + COMMAND_REGISTER(cmd_ctx, etm_cmd, "load", handle_etm_load_command, COMMAND_EXEC, "load trace data for analysis "); return ERROR_OK;