Allow the baud rate to be specified on the command line with a new -b

switch.  The specified baud rate will override the default serial port
baud rate for a particular programmer.


git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@416 81a1dc3b-b13d-400b-aceb-764788c761c2
This commit is contained in:
bdean 2004-05-19 23:00:38 +00:00
parent 75f5527937
commit 518ff9d2f8
2 changed files with 23 additions and 2 deletions

20
main.c
View File

@ -699,6 +699,7 @@ int main(int argc, char * argv [])
int set_cycles; /* value to set the erase-rewrite cycles to */
char * e; /* for strtol() error checking */
int quell_progress;
int baudrate; /* override default programmer baud rate */
#if !defined(__CYGWIN__)
char * homedir;
#endif
@ -738,6 +739,7 @@ int main(int argc, char * argv [])
verbose = 0;
do_cycles = 0;
set_cycles = -1;
baudrate = 0;
#if defined(__CYGWIN__)
@ -782,9 +784,18 @@ int main(int argc, char * argv [])
/*
* process command line arguments
*/
while ((ch = getopt(argc,argv,"?c:C:DeE:Fnp:P:qtU:vVyY:")) != -1) {
while ((ch = getopt(argc,argv,"?b:c:C:DeE:Fnp:P:qtU:vVyY:")) != -1) {
switch (ch) {
case 'b': /* override default programmer baud rate */
baudrate = strtol(optarg, &e, 0);
if ((e == optarg) || (*e != 0)) {
fprintf(stderr, "%s: invalid baud rate specified '%s'\n",
progname, optarg);
exit(1);
}
break;
case 'c': /* programmer id */
programmer = optarg;
break;
@ -1064,6 +1075,13 @@ int main(int argc, char * argv [])
fprintf(stderr, "%sUsing Programmer : %s\n", progbuf, programmer);
}
if (baudrate != 0) {
if (verbose) {
fprintf(stderr, "%sOverriding Baud Rate : %d\n", progbuf, baudrate);
}
pgm->baudrate = baudrate;
}
rc = pgm->open(pgm, port);
if (rc < 0) {
exitrc = 1;

View File

@ -540,7 +540,10 @@ static void stk500_enable(PROGRAMMER * pgm)
static int stk500_open(PROGRAMMER * pgm, char * port)
{
strcpy(pgm->port, port);
pgm->fd = serial_open(port, 115200);
if (pgm->baudrate)
pgm->fd = serial_open(port, pgm->baudrate);
else
pgm->fd = serial_open(port, 115200);
/*
* drain any extraneous input