Thu 18 Nov 2010 06:14:42 PM UTC, original submission:
I found a very strange problem, which makes it nearly impossible to write e.g. a bootloader into an ATMEGA in a seriously short time.
For specialists, this should be easy to fix.
Version : 5.10
Following commandline:
avrdude -p m128 -c ponyser -P com1: -e -U flash:w:test55.hex
used with following sole hexfile content:
:20F0000011241FBECFEFD0E1DEBFCDBF11E0A0E0B1E0E6E3F6EF01E00BBF02C007900D92F3
:00000001FF
Problem #1:
===========
Although the flash memory is cleared, the software always tries to write full 61472 bytes into the Atmega. Most of this writing is unnecessary as the bytes are all 0xFF after a flash erase.
This way, it takes minutes instead of 2-3 seconds to write a small portion of code into the upper part of the flash.
It seems that it doesn't skip writing blocks of 0xFF starting at beginning of the Flash memory up to the address where it is needed to write the first byte != 0.
even worse: Problem #2
======================
adding
:020000040001F9
as the first line of the hex file should relocate the writing process to Flash address 0x1F000.
Instead, the software still tries to write only 61472 bytes.
The dump which I get when using cmd-line option "-n" shows this clearly.
This way, it is impossible to write a bootloader into the upper few KB's of the 128K Flash.
Is the AVRDUDE Software perhaps not able to write more than 64KB ?
Please look into this, as it is clearly not only of importance for me.
Many thanxxxxxxxxxx
Georg
|