]> git.sur5r.net Git - openocd/commitdiff
Improve armv7m command argument parsing.
authorZachary T Welch <zw@superlucidity.net>
Sat, 24 Oct 2009 13:36:06 +0000 (06:36 -0700)
committerZachary T Welch <zw@superlucidity.net>
Fri, 6 Nov 2009 02:03:19 +0000 (18:03 -0800)
src/target/armv7m.c

index 64bdfd527164290103da469706436b33be3f44d4..49e50f4da6008c312b4fcce2e79f38a53042c566 100644 (file)
@@ -756,25 +756,27 @@ static int handle_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);
-       }
 
        dap_ap_read_reg_u32(swjdp, 0xF8, &baseaddr);
        retval = swjdp_transaction_endcheck(swjdp);
        command_print(cmd_ctx, "0x%8.8" PRIx32 "", baseaddr);
 
        if (apselsave != apsel)
-       {
                dap_ap_select(swjdp, apselsave);
-       }
 
        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;
        uint32_t apsel;
 
-       apsel =  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;
+       }
 
        return dap_info_command(cmd_ctx, swjdp, apsel);
 }