Replace the fallback of avr_read_byte() and avr_write_byte() to

avr_read_byte_default() and avr_write_byte_default (resp.) by directly
calling the latter functions from within all programmers that don't
implement their own read_byte()/write_byte() methods.  In turn, make the
read_byte() and write_byte() methods mandatory, and the cmd() method
(direct ISP command) optional instead (it's effectively mandatory for
any programmer using avr_read_byte_default()/avr_write_byte_default()
though).  Remove all the pointless cmd() method stubs from those programmers
that don't need it.

Eliminate avr_read_byte() as it was now completely identical to
pgm->read_byte().


git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@684 81a1dc3b-b13d-400b-aceb-764788c761c2
This commit is contained in:
Joerg Wunsch
2006-11-20 15:04:09 +00:00
parent 23aeb38d13
commit afb13a9936
14 changed files with 141 additions and 114 deletions

View File

@@ -334,16 +334,6 @@ static int jtagmkI_getsync(PROGRAMMER * pgm)
return 0;
}
static int jtagmkI_cmd(PROGRAMMER * pgm, unsigned char cmd[4],
unsigned char res[4])
{
fprintf(stderr, "%s: jtagmkI_command(): no direct SPI supported for JTAG\n",
progname);
return -1;
}
/*
* issue the 'chip erase' command to the AVR device
*/
@@ -1354,17 +1344,16 @@ void jtagmkI_initpgm(PROGRAMMER * pgm)
pgm->disable = jtagmkI_disable;
pgm->program_enable = jtagmkI_program_enable_dummy;
pgm->chip_erase = jtagmkI_chip_erase;
pgm->cmd = jtagmkI_cmd;
pgm->open = jtagmkI_open;
pgm->close = jtagmkI_close;
pgm->read_byte = jtagmkI_read_byte;
pgm->write_byte = jtagmkI_write_byte;
/*
* optional functions
*/
pgm->paged_write = jtagmkI_paged_write;
pgm->paged_load = jtagmkI_paged_load;
pgm->read_byte = jtagmkI_read_byte;
pgm->write_byte = jtagmkI_write_byte;
pgm->print_parms = jtagmkI_print_parms;
pgm->set_sck_period = jtagmkI_set_sck_period;
pgm->page_size = 256;