mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik avrdude löscht / überschreibt eeprom


Autor: Ich Bin (ichbin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie kann ich verhindern, daß AVRdude (winavr) den eeprom beim Flashen
überschreibt?

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mit irgendeinem Flag, das in der Kommanando-Zeile (nicht) angegeben
wird. Siehe AVRdude-Doku.

Autor: Ich Bin (ichbin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Neee, das war's nicht: vor dem Flashen wird immer ein Chip-Erase
durchgeführt, und da löscht's auch den eeprom.
Es gibt aber eine Fuse (EESAVE), die den eeprom davor schützt.
Zumindest beim tiny2313.

Autor: Manuel B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
(entfernt)

Autor: Ich Bin (ichbin)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So macht's WinAVR

avrdude -p attiny2313 -P com3 -c avrispv2    -U flash:w:main.hex
.
.
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be
performed
To disable this feature, specify the -D option.

Und das sagt das avrdude manual:

-e
Causes a chip erase to be executed. This will reset the contents of the
flash ROM and EEPROM to the value‘0xff’, and is basically a prerequisite
command before the flash ROM can be reprogrammed again. The only
exception would be if the new contents would exclusively cause bits to
be programmed from the value ‘1’ to ‘0’. Note that in order to
reprogram EERPOM cells, no explicit prior chip erase is required since
the MCU provides an auto-erase cycle in that case before programming
the cell.

Autor: Ludwig Wagner (lordludwig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also grundsätzlich zur funktion des flash's:

- du kannst nur bits mit dem wert 0 reinschreiben
- darausfolgt du kannst kein 0xff rein schreiben
- alles auf 0xff stellen geht nur mit löschen befehl
- deshalb gibt es auch fehler wenn du nur ne neue datei flasht und
nicht davor löscht

lösung: setze das fuse das das löschen verhindert

Autor: Manfred B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Unabhängig vom Programmer und dem Programmertool muss in diesem Falle
das entsprechende Fuse Bit EESAVE im Fuse High Byte gesetzt werden.
Achtung gesetzt bedeutet "0".

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.