-
Notifications
You must be signed in to change notification settings - Fork 403
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
avrdude has EEPROM bug #235
Comments
So, about getting EEPROM support in a 512B image; how can this be done? I just compared "my" repo to yours in terms of compiled size. Both are compiled with avr-gcc 5.4.0.
"My optiboot_flash repo":
Official Optiboot repo:
If i've understood it correctly the text field is the actual size of the image in bytes. How can this be reduced to 512 or less? |
ON TOPIC: |
The trick to getting EEPROM support is that you don't get DOSPM support at the same time :-(
|
I favored so_spm because EEPROM upload is not currently supported in Arduino IDE, and you can do cool and useful things with do_spm. I created a high-ish level Flash library to make the internal flash memory more accessible to the end-user: |
See the conclusion at avrdudes/avrdude#967 (comment) and related discussion. |
For classic AVRs, this has been fixed in avrdude git main by the following PR.
It does introduce regression for optiboot_x and optoboot_dx. This will be fixed in the following PR. |
There may still be some issues with four chips ( |
From avrdude side, this issue has been fixed in avrdude git main, which will lead to avrdude 7.1 release soon. |
From Optiboot side, #357 is a real issue related to EEPROM. |
urboot (which is indeed inspired by Optiboot) does achieve this goal within 512B. Tight code: most bootloaders fit into
|
Optiboot is about to be tuned enough to include EEPROM support in a 512byte image.
That's swell, but it turns out that AVRDUDE is somewhat inconsistent WRT reading and writing EEPROM - some parts (ATmega328x, for example) use a word-based address in the STK_LOAD_ADDRESS command, and other parts (notably ATmega8) ) used a byte-based address.
This is documented here: https://savannah.nongnu.org/bugs/?48131
There's probably an avrdude.conf based patch, but the short-term issue is that an ATmega8 with optiboot will not interact properly with AVRDUDE. (It doesn't work with ArduinoISP, either!)
Documented here for the sake of completeness.
The text was updated successfully, but these errors were encountered: