I have successfully implemented Martin Thomas' avr-gcc port of the
butterfly bootloader on an ATmega16. I have successfully reflashed
application code to the device from Windows XP using AVRdude 4.4.0 as
shipped with WinAVR using the following command:
I am using the -D option to disable the auto erase to protect against
wiping the bootloader code. I have set the fuse and lock bits in an
attempt to prevent this, but also took this step to be sure.
However, I really need to be able to program from FreeBSD. I am using
AVRdude 4.4.0 on FreeBSD 5.2. I am trying to program the same device
with the same hex file as used from Windows, but I get the following
verification error following the "Writing" and "Reading" processes:
avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0067
0xe6 != 0xe0
avrdude: verification error; content mismatch
This seems to kill the bootloader code as well, as I have to reprogram
the bootloader hex to the device and reset the fuses.
Any suggestions or ideas here? I would think that having the
verification is a good thing. I would rather not disable this if I can
help it, but I don't know how to interpret the error output to know how
to go about troubleshooting this problem.