diff --git a/avrdude.conf.sample b/avrdude.conf.sample index 158d55bf..f232bbe2 100644 --- a/avrdude.conf.sample +++ b/avrdude.conf.sample @@ -172,8 +172,9 @@ # # Overall avrdude defaults # -default_parallel = "/dev/ppi0"; -default_serial = "/dev/cuaa0"; +default_parallel = "/dev/ppi0"; +default_serial = "/dev/cuaa0"; +default_programmer = "stk500"; # @@ -181,7 +182,7 @@ default_serial = "/dev/cuaa0"; # programmer - id = "bsd", "default"; + id = "bsd"; desc = "Brian Dean's Programmer"; type = par; vcc = 2, 3, 4, 5; diff --git a/config.c b/config.c index f66e9a8f..b0826587 100644 --- a/config.c +++ b/config.c @@ -30,6 +30,7 @@ #include "config.h" #include "config_gram.h" +char default_programmer[MAX_STR_CONST]; char default_parallel[PATH_MAX]; char default_serial[PATH_MAX]; diff --git a/config.h b/config.h index 3e34b0ae..627a3c2c 100644 --- a/config.h +++ b/config.h @@ -53,6 +53,7 @@ extern int lineno; extern char * infile; extern LISTID string_list; extern LISTID number_list; +extern char default_programmer[]; extern char default_parallel[]; extern char default_serial[]; diff --git a/config_gram.y b/config_gram.y index e06f3a1f..ef9471d6 100644 --- a/config_gram.y +++ b/config_gram.y @@ -68,6 +68,7 @@ static int parse_cmdbits(OPCODE * op); %token K_CHIP_ERASE_DELAY %token K_DEDICATED %token K_DEFAULT_PARALLEL +%token K_DEFAULT_PROGRAMMER %token K_DEFAULT_SERIAL %token K_DESC %token K_DEVICECODE @@ -131,6 +132,12 @@ def : part_def TKN_SEMI | + K_DEFAULT_PROGRAMMER TKN_EQUAL TKN_STRING TKN_SEMI { + strncpy(default_programmer, $3->value.string, MAX_STR_CONST); + default_programmer[MAX_STR_CONST-1] = 0; + free_token($3); + } | + K_DEFAULT_PARALLEL TKN_EQUAL TKN_STRING TKN_SEMI { strncpy(default_parallel, $3->value.string, PATH_MAX); default_parallel[PATH_MAX-1] = 0; diff --git a/lexer.l b/lexer.l index 26440d70..cd67d912 100644 --- a/lexer.l +++ b/lexer.l @@ -122,6 +122,7 @@ buff { yylval=NULL; return K_BUFF; } chip_erase_delay { yylval=NULL; return K_CHIP_ERASE_DELAY; } desc { yylval=NULL; return K_DESC; } default_parallel { yylval=NULL; return K_DEFAULT_PARALLEL; } +default_programmer { yylval=NULL; return K_DEFAULT_PROGRAMMER; } default_serial { yylval=NULL; return K_DEFAULT_SERIAL; } devicecode { yylval=NULL; return K_DEVICECODE; } eeprom { yylval=NULL; return K_EEPROM; } diff --git a/main.c b/main.c index 8355561e..dd106d5a 100644 --- a/main.c +++ b/main.c @@ -190,7 +190,7 @@ int read_config(char * file) -void pinconfig_display(char * p) +void programmer_display(char * p) { fprintf(stderr, "%sProgrammer Type: %s\n", p, pgm->type); @@ -210,7 +210,7 @@ void verify_pin_assigned(int pin, char * desc) -PROGRAMMER * locate_pinconfig(LISTID programmers, char * configid) +PROGRAMMER * locate_programmer(LISTID programmers, char * configid) { LNODEID ln1, ln2; PROGRAMMER * p = NULL; @@ -305,7 +305,7 @@ int main(int argc, char * argv []) int ppisetbits; /* bits to set in ppi data register at exit */ int ppiclrbits; /* bits to clear in ppi data register at exit */ char * exitspecs; /* exit specs string from command line */ - char * pinconfig; /* programmer id */ + char * programmer; /* programmer id */ char * partdesc; /* part id */ char configfile[PATH_MAX]; /* pin configuration file */ int cycles; /* erase-rewrite cycles */ @@ -341,7 +341,7 @@ int main(int argc, char * argv []) ppiclrbits = 0; exitspecs = NULL; pgm = NULL; - pinconfig = "avrdude"; /* compiled-in default */ + programmer = default_programmer; verbose = 0; do_cycles = 0; set_cycles = -1; @@ -352,25 +352,6 @@ int main(int argc, char * argv []) strcat(configfile, "/"); strcat(configfile, "avrdude.conf"); - /* - * initialize compiled-in default programmer - */ - compiled_in_pgm = pgm_new(); - pgm = compiled_in_pgm; - par_initpgm(pgm); - ladd(pgm->id, dup_string("avrdude")); - strcpy(pgm->desc, "avrdude compiled-in default"); - pgm->pinno[PPI_AVR_VCC] = 0x0f; /* ppi pins 2-5, data reg bits 0-3 */ - pgm->pinno[PPI_AVR_BUFF] = 0; - pgm->pinno[PIN_AVR_RESET] = 7; - pgm->pinno[PIN_AVR_SCK] = 8; - pgm->pinno[PIN_AVR_MOSI] = 9; - pgm->pinno[PIN_AVR_MISO] = 10; - pgm->pinno[PIN_LED_ERR] = 0; - pgm->pinno[PIN_LED_RDY] = 0; - pgm->pinno[PIN_LED_PGM] = 0; - pgm->pinno[PIN_LED_VFY] = 0; - len = strlen(progname) + 2; for (i=0; iopen(pgm, port); @@ -644,7 +629,7 @@ int main(int argc, char * argv []) if (verbose) { avr_display(stderr, p, progbuf, verbose); fprintf(stderr, "\n"); - pinconfig_display(progbuf); + programmer_display(progbuf); } fprintf(stderr, "\n");