Forum: Mikrocontroller und Digitale Elektronik Fehler mit EEPROM-Programmieren bei Production File


von Christian G. (cgwerder)


Angehängte Dateien:

Lesenswert?

Guten Tag

Ich stehe momentan am Ende eines Projektes mit dem Atmega88.

Die Software und die Hardware funktionieren einwandfrei und 
grundsätzlich habe ich die ganze Entwicklung abgeschlossen.

Damit nun in einem späteren Zeitpunkt der Mikrocontroller von jeder 
beliebigen Person mit AVRStudio 4.16 (Build 638) programmiert werden 
kann, möchte ich das Production File .elf verwenden. Dies ist meiner 
Ansicht nach Perfekt geeignet.

Das Problem liegt nun beim .eep File.
Dieses ist leer, da ich keine Daten auf das EEPROM schreibe.

Wenn ich nun das .elf File mit dem aktuellen Flash und EEPROM speichere, 
tritt die Warnung auf, dass das .eep File leer ist. Dies ist ja auch 
korrekt.

Will ich nun das .elf File programmieren, tritt nach dem Lesen des 
EEPROM die Warnung auf, dass bei Adresse 0x0000 der Wert 0xFF ist, 
sollte aber 0x28, oder 0x08, oder 0x20, oder, oder, oder.
Dieser Sollwert ändert sich ständig.

Grundsätzlich ist verständlich, dass in einem leeren File keine gültigen 
Sollwerte vorhanden sind.

Um dieses Problem zu beheben, habe ich kein eep-File ins .elf 
gespeichert.
Logischerweise möchte er beim Speichern des .elf Files eine Datei für 
das EEPROM. Diese Meldung quitiere ich aber mit Abbrechen und im Log 
steht klar und deutlich geschrieben: "EEPROM input file is not specified 
and will not be programmed".
Super, dachte ich, als ich das gelesen habe, genau das wollte ich!

Voller Zuversicht programmierte ich nochmals das .elf File.
Doch, oh Schreck, es wird genau der gleiche Fehler gemeldet: An Stelle 
0x0000 im EEPROM stimmt der Wert nicht mit Sollwert überein.

Nun stehe ich nach mehreren Stunden vergeblichen Suchen im Internet hier 
und erbitte euch herzlichst, mir bei diesem Problem weiter zu helfen!

Freundliche Grüsse

Christian

von Peter R. (gelb)


Lesenswert?

2 Sachen fallen mir dazu ein:

- Eine mit lauter $ff gefüllte *.eep - Datei verwenden.
- das Bit EESAVE in den Fusebits hat vielleicht auch Einfluss.

Grüße, Peter

von Christian G. (cgwerder)


Lesenswert?

Vielen Dank Peter für deine schnelle Antwort.

Ich habe nun ein *.eep File erstellt, welches nur ein Byte auf $FF 
setzt.
Und bereits dies funktioniert!

Leider ist damit ein Fehler umgangen worden... Aber dieser wird 
vermutlich durch das AVRStudio verursacht.

Das Fusebit EESAVE hat meiner Ansicht keine Vernänderung bewirkt.

Nochmals ein grosses Dankeschön!

Gruss Christian

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.