xref: /rk3399_rockchip-uboot/tools/gdb/gdbcont.c (revision 326ea986ac150acdc7656d57fca647db80b50158)
16dd652faSwdenk /*
26dd652faSwdenk  * (C) Copyright 2000
36dd652faSwdenk  * Murray Jensen <Murray.Jensen@csiro.au>
46dd652faSwdenk  *
5*1a459660SWolfgang Denk  * SPDX-License-Identifier:	GPL-2.0+
66dd652faSwdenk  */
76dd652faSwdenk 
83ba68654Swdenk #include <stdio.h>
93ba68654Swdenk #include <stdlib.h>
103ba68654Swdenk #include <string.h>
113ba68654Swdenk #include <unistd.h>
123ba68654Swdenk #include "serial.h"
133ba68654Swdenk #include "error.h"
143ba68654Swdenk #include "remote.h"
153ba68654Swdenk 
163ba68654Swdenk char *serialdev = "/dev/term/b";
173ba68654Swdenk speed_t speed = B230400;
183ba68654Swdenk int verbose = 0;
193ba68654Swdenk 
203ba68654Swdenk int
main(int ac,char ** av)213ba68654Swdenk main(int ac, char **av)
223ba68654Swdenk {
233ba68654Swdenk     int c, sfd;
243ba68654Swdenk 
253ba68654Swdenk     if ((pname = strrchr(av[0], '/')) == NULL)
263ba68654Swdenk 	pname = av[0];
273ba68654Swdenk     else
283ba68654Swdenk 	pname++;
293ba68654Swdenk 
303ba68654Swdenk     while ((c = getopt(ac, av, "b:p:v")) != EOF)
313ba68654Swdenk 	switch (c) {
323ba68654Swdenk 
333ba68654Swdenk 	case 'b':
343ba68654Swdenk 	    if ((speed = cvtspeed(optarg)) == B0)
353ba68654Swdenk 		Error("can't decode baud rate specified in -b option");
363ba68654Swdenk 	    break;
373ba68654Swdenk 
383ba68654Swdenk 	case 'p':
393ba68654Swdenk 	    serialdev = optarg;
403ba68654Swdenk 	    break;
413ba68654Swdenk 
423ba68654Swdenk 	case 'v':
433ba68654Swdenk 	    verbose = 1;
443ba68654Swdenk 	    break;
453ba68654Swdenk 
463ba68654Swdenk 	default:
473ba68654Swdenk 	usage:
483ba68654Swdenk 	    fprintf(stderr, "Usage: %s [-b bps] [-p dev] [-v]\n", pname);
493ba68654Swdenk 	    exit(1);
503ba68654Swdenk 	}
513ba68654Swdenk     if (optind != ac)
523ba68654Swdenk 	goto usage;
533ba68654Swdenk 
543ba68654Swdenk     if (verbose)
553ba68654Swdenk 	fprintf(stderr, "Opening serial port and sending continue...\n");
563ba68654Swdenk 
573ba68654Swdenk     if ((sfd = serialopen(serialdev, speed)) < 0)
583ba68654Swdenk 	Perror("open of serial device '%s' failed", serialdev);
593ba68654Swdenk 
603ba68654Swdenk     remote_desc = sfd;
613ba68654Swdenk     remote_reset();
623ba68654Swdenk     remote_continue();
633ba68654Swdenk 
643ba68654Swdenk     if (serialclose(sfd) < 0)
653ba68654Swdenk 	Perror("close of serial device '%s' failed", serialdev);
663ba68654Swdenk 
673ba68654Swdenk     if (verbose)
683ba68654Swdenk 	fprintf(stderr, "Done.\n");
693ba68654Swdenk 
703ba68654Swdenk     return (0);
713ba68654Swdenk }
72