Improve armv7m command argument parsing.

__archive__
Zachary T Welch 2009-10-24 06:36:06 -07:00
parent 3dd5c59d7d
commit 3541ed3aa3
1 changed files with 20 additions and 11 deletions

View File

@ -756,25 +756,27 @@ static int handle_dap_baseaddr_command(struct command_context_s *cmd_ctx,
uint32_t apsel, apselsave, baseaddr; uint32_t apsel, apselsave, baseaddr;
int retval; int retval;
apsel = swjdp->apsel;
apselsave = swjdp->apsel; apselsave = swjdp->apsel;
if (argc > 0) switch (argc) {
{ case 0:
apsel = strtoul(args[0], NULL, 0); apsel = swjdp->apsel;
break;
case 1:
COMMAND_PARSE_NUMBER(u32, args[0], apsel);
break;
default:
return ERROR_COMMAND_SYNTAX_ERROR;
} }
if (apselsave != apsel) if (apselsave != apsel)
{
dap_ap_select(swjdp, apsel); dap_ap_select(swjdp, apsel);
}
dap_ap_read_reg_u32(swjdp, 0xF8, &baseaddr); dap_ap_read_reg_u32(swjdp, 0xF8, &baseaddr);
retval = swjdp_transaction_endcheck(swjdp); retval = swjdp_transaction_endcheck(swjdp);
command_print(cmd_ctx, "0x%8.8" PRIx32 "", baseaddr); command_print(cmd_ctx, "0x%8.8" PRIx32 "", baseaddr);
if (apselsave != apsel) if (apselsave != apsel)
{
dap_ap_select(swjdp, apselsave); dap_ap_select(swjdp, apselsave);
}
return retval; return retval;
} }
@ -822,9 +824,16 @@ static int handle_dap_info_command(struct command_context_s *cmd_ctx,
swjdp_common_t *swjdp = &armv7m->swjdp_info; swjdp_common_t *swjdp = &armv7m->swjdp_info;
uint32_t apsel; uint32_t apsel;
apsel = swjdp->apsel; switch (argc) {
if (argc > 0) case 0:
apsel = strtoul(args[0], NULL, 0); apsel = swjdp->apsel;
break;
case 1:
COMMAND_PARSE_NUMBER(u32, args[0], apsel);
break;
default:
return ERROR_COMMAND_SYNTAX_ERROR;
}
return dap_info_command(cmd_ctx, swjdp, apsel); return dap_info_command(cmd_ctx, swjdp, apsel);
} }