EEPROM beschreiben

Hallo,
ich würde gern beim upload des sketches auch das EEPROM mit Parametern beschreiben,
aber ohne diese vorher in das Flash zu schreiben (knapper Flash Speicher).
Kann ich das mit irgendeinem Befehl hinbekommen? (Kompiler Anweisung z.B.?)

gruss
Michael

avrdude can write flash, fuses and also EEPROM. But it has not been implemented in the Arduino IDE as far as I know.

Peter_n:
avrdude can write flash, fuses and also EEPROM. But it has not been implemented in the Arduino IDE as far as I know.

... und einen Programmer (usbasp, usbtinyisp oder so) brauchst du wohl auch, weil der bootloader auf dem Arduino das auch nicht unterstützt, fürchte ich.

Wenn der sketch wirklich so groß ist, dass er das nicht mit hinkriegt:
Als Notbehelf einen extra sketch schreiben, der den EEPROM setzt, upload, laufen lassen, dann den eigentlichen sketch laden.

Das was mir einfällt ist das was michael_x bereits gesagt hat.
Mit einem Sketch EEprom beschreiben und dann den andere Sketch draufschreiben.

Wenn Du knappen Flashspeicher hast dann wäre mal zu überlegen ob Du nicht Bibliotheken weglassen solltest bzw bestimmte Programmteile umschreiben solltest damit sie Bibilotheken nicht verwenden. (Als Beispiel sei die Verwendung von strings genannt)
Wenn Du und den sketch zeigst können wir nachschauen.

Ein Arduino Mega mit mehr Flash kann auch ein Lösungsweg sein. oder die Ablage von Daten auf einem externen SD-Karte.

Viele Grüße Uwe

Ein anderer Atmega ist keine Lösung, da 100 Platinen schon fertig sind.
Der Weg vorher einen anderen sketch zu laden, der den EEPROM beschreibt, wäre eine Möglichkeit, ich dachte nur, es würde auch einfacher gehen.

Ich würde zuerst einmal Uwes Vorschlag befolgen. Meist sind doch sehr viele Programmabschnitte nicht optimiert. Vermutlich passt das ganze Programm problemlos auf den Atmega. Dazu müsste man aber den Sketch sehen.

Michaels Vorschlag ist zwar aufwendiger, aber durchaus noch mit der Arduino IDE zu erledigen. Jedoch solltest du vorab schauen, wie die Fuse Einstellungen gesetzt sind. EESAVE darf dann nicht genutzt werden.

Wenn aber der Sketch bereits sehr weit optimiert wurde und es denoch nicht passt, würde ich persönlich aber die Möglich mit dem Atmel Studio vorziehen bei dem man den Eeprom auch einzeln beschreiben kann.

Besorge dir den USBasp und ziehe dir den eXtremeburner. Damit kannst du Fuses, EEPROM und FLASH einzeln oder alles in einem Rutsch lesen und auch brennen. Du mußt dir nur den Temp Ordner mit der HEX-Datei raussuchen und den schiebst du dann mit eXtremeburner auf den Chip. Da die IDE keinen direkten Upload fürs EEPROM anbietet, mußt du einen Chip wie oben beschrieben "hinfummeln". Den clonst du dann mit eXtremeburner bequem auf den Rest :wink:

sschultewolter:
Wenn aber der Sketch bereits sehr weit optimiert wurde und es denoch nicht passt, würde ich persönlich aber die Möglich mit dem Atmel Studio vorziehen bei dem man den Eeprom auch einzeln beschreiben kann.

Ohne Arduino Bootloader hättest du auch etwas mehr Flash zur Verfügung, was du evtl. zum EEPROM upload zur Laufzeit nutzen könntest..

Ein anderer Atmega ist keine Lösung, da 100 Platinen schon fertig sind

Für eine solche Großserie :wink: lohnt es sich wohl, extremeBurner oder einen eigenen Vervielfältigungs-Skript mit avrdude zu verwenden.

Ich hab das mit einem eignen Batch mit dem AVRDude erledigt.
Für die "Massenproduktion" sowieso sinnvoller...

Hm,
die Idee mit extremeBurner fand ich gut,
leider hat der den Atmega32U4 nicht gelistet!

Macht nichts, der 328 ist auch nicht dabei. Nimm einfach einen, der gleiche Größe an FLASH und EEPROM hat. Ich habe den 32 genommen. Die Fehlermeldung der falschen ID klickt man weg und gut ist.