bootloader and avrdude -y option

1 post / 0 new
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Does anybody have the -y option of avrdude working with a bootloader?
(writes # of flash updates to EEPROM)

It doesn't work work the arduino/adaboot/diecimila bootloaders which is the one I'm currently using.

From glancing at the code, the problem seems to be that avrdude drops into a low level universal ISP command interface for updating the EEPROM rather than using higher level messages and the bootloader doesn't support those commands.

It would seem pretty easy to alter avrdude to use the paged_load() and paged_write() functions to do this by writing wrappers around them to handle all the read/write page operations transparently to the upper layers. And it would be easy to add new read/write multi-byte functions to avrdude that could be used in place of using the single byte avr_read_byte_default()/avr_write_byte_default() functions, but the paged_load() and paged_write() functions that these multi-byte function wrappers would need to call don't support starting addresses - they assume 0.

That can be fixed too but it is a bit of work.

So before I go off and fix avrdude to support starting addresses on paged operations, my question is:

Does anybody have a version of a bootloader that supports the existing avrdude using the -y option or has anybody patched avrdude to allow reading/writing pages starting at addresses other than 0?

BTW: if avrdude is updated to support multibyte operations on top of paged functions, it will also be possible to update things like terminal mode dumps to work much faster as that code will be able to read in blocks rather than having to read data byte by byte.

--- bill