diff options
author | Zachary T Welch <zw@superlucidity.net> | 2009-10-24 06:36:05 -0700 |
---|---|---|
committer | Zachary T Welch <zw@superlucidity.net> | 2009-11-05 18:03:19 -0800 |
commit | a8886cdfee58aff32a6c3e3cdf818e584d1075d7 (patch) | |
tree | df10364bb4c5260ebcda2562b54f638ce78f4186 | |
parent | 9b3781e5a4c0145f0be4e7c262975e3b9909d1c4 (diff) | |
download | riscv-openocd-a8886cdfee58aff32a6c3e3cdf818e584d1075d7.zip riscv-openocd-a8886cdfee58aff32a6c3e3cdf818e584d1075d7.tar.gz riscv-openocd-a8886cdfee58aff32a6c3e3cdf818e584d1075d7.tar.bz2 |
Improve arm_adi_v5 command argument parsing.
-rw-r--r-- | src/target/arm_adi_v5.c | 57 |
1 files changed, 42 insertions, 15 deletions
diff --git a/src/target/arm_adi_v5.c b/src/target/arm_adi_v5.c index 3364132..0fc2976 100644 --- a/src/target/arm_adi_v5.c +++ b/src/target/arm_adi_v5.c @@ -1370,10 +1370,18 @@ int dap_baseaddr_command(struct command_context_s *cmd_ctx, uint32_t apsel, apselsave, baseaddr; int retval; - apsel = swjdp->apsel; apselsave = swjdp->apsel; - if (argc > 0) - apsel = strtoul(args[0], NULL, 0); + switch (argc) { + case 0: + apsel = swjdp->apsel; + break; + case 1: + COMMAND_PARSE_NUMBER(u32, args[0], apsel); + break; + default: + return ERROR_COMMAND_SYNTAX_ERROR; + } + if (apselsave != apsel) dap_ap_select(swjdp, apsel); @@ -1392,11 +1400,18 @@ int dap_memaccess_command(struct command_context_s *cmd_ctx, { uint32_t memaccess_tck; - memaccess_tck = swjdp->memaccess_tck; - if (argc > 0) - memaccess_tck = strtoul(args[0], NULL, 0); - + switch (argc) { + case 0: + memaccess_tck = swjdp->memaccess_tck; + break; + case 1: + COMMAND_PARSE_NUMBER(u32, args[0], memaccess_tck); + break; + default: + return ERROR_COMMAND_SYNTAX_ERROR; + } swjdp->memaccess_tck = memaccess_tck; + command_print(cmd_ctx, "memory bus access delay set to %" PRIi32 " tck", swjdp->memaccess_tck); @@ -1409,9 +1424,16 @@ int dap_apsel_command(struct command_context_s *cmd_ctx, uint32_t apsel, apid; int retval; - apsel = 0; - if (argc > 0) - apsel = strtoul(args[0], NULL, 0); + switch (argc) { + case 0: + apsel = 0; + break; + case 1: + COMMAND_PARSE_NUMBER(u32, args[0], apsel); + break; + default: + return ERROR_COMMAND_SYNTAX_ERROR; + } dap_ap_select(swjdp, apsel); dap_ap_read_reg_u32(swjdp, 0xFC, &apid); @@ -1428,10 +1450,17 @@ int dap_apid_command(struct command_context_s *cmd_ctx, uint32_t apsel, apselsave, apid; int retval; - apsel = swjdp->apsel; apselsave = swjdp->apsel; - if (argc > 0) - apsel = strtoul(args[0], NULL, 0); + switch (argc) { + case 0: + apsel = swjdp->apsel; + break; + case 1: + COMMAND_PARSE_NUMBER(u32, args[0], apsel); + break; + default: + return ERROR_COMMAND_SYNTAX_ERROR; + } if (apselsave != apsel) dap_ap_select(swjdp, apsel); @@ -1444,5 +1473,3 @@ int dap_apid_command(struct command_context_s *cmd_ctx, return retval; } - - |