New FDxBOOT 1.0.RC - 476 bytes - 4770 B/s @1Mpbs - Bootloader self-program - AVR109/AVR911/butterfly
FDxBOOT 1.0.RC Bootloader @1Mpbs
Compiled size: 476 bytes
4770 B/s Write
7929 B/s Read
Original AVR109 Bootloader @1Mpbs
Compiled size: 1288 bytes
4441 B/s Write
7772 B/s Read
Much smaller, slightly faster, and it's expected because speed optimization has not been done yet. To increase the upload speed, one page of data should be serially-shifted-in while the flash is being written (AKA. Doing 2 things at a time). A lot of responses that can be ignored are omitted, but unfortunately this dumb protocol requires a 7-character ID, and this can't be omitted and so getting down to 256 bytes is almost not possible, so this is a 512 bytes bootloader. It will not work with AVROSP, but is fine with AVRdude. It's working now, and is officially called the FDxBOOT, but further optimizations are required.
Further tasks:
1, pipeline the serial and flash routine to improve upload speed. (6kB/s is the goal for write)
2, add clean up the code and add better comment/documentation.
3, reduce the size further (This semi-C-ASM code has not been deeply analysed)
4, add a routine to switch between App and Boot section not requiring the use of a jumper or a switch
5, can be more than a bootloader. It's only part of the Advanced AVR-3.0.