www.mikrocontroller.net

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


Autor: Christian Gwerder (cgwerder)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Roth (gelb)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christian Gwerder (cgwerder)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.