ESP8266: Flash Speicher löschen

Ungültige Speicheradresse

Wenn man mit dem Flashspeicher eines ESP8266 oder ESP32 basierenden Microcontrollers herumspielt, kann es vorkommen, dass man beim Laden und Ausführen eines neu entwickelten Skripts eine fatal exception im Serial Monitor angezeigt bekommt. Es läuft eine unendliche Fehlermeldung mit lauter hex-Werten durch.

Abbildung 1: Exception bei fehlerhaftem Zugriff auf den Flashspeicher.

Zuerst dachte ich: “jetzt hast du das Teil geschrottet”. Mitnichten! Der Fehler Nummer 28 tritt immer dann auf, wenn man einen Bereich des Flashspeichers mit bestimmter Größe beschrieben hat und später einen größeren Bereich als den vorher beschriebenen wieder auslesen will.

Zum Beispiel hat man vorher diverse Parameter (z.B. aus einem Sketch des Beitrags ESP8266: WiFi Passwort etc. ohne Programmieren speichern) mit insgesamt 120 Byte Länge weggespeichert. Will man nun z.B. 150Byte auslesen, kommmt es zu dem oben dargestellten Fehler.

Netterweise gibt es im Arduino IDE eine Einstellung unter Werkzeuge, die “Erase Flash” heißt. Dort kann man auswählen, wie mit dem Flash Speicher beim nächsten Programmiervorgang umgegangen werden soll. Mit der Auswahl “All Flash Contents” wird der Speicher komplett gelöscht und du kannst deinen neuen Sketch, welcher mehr Flash Speicher adressiert,  ausführen.  Hilfreich ist das auch beim Verkaufen oder Verschenken eines gebrauchten ESP Moduls um die WLAN Zugangsparameter zu löschen.

Hinterher nicht vergessen, auf “Only Sketch” zurückzustellen.


Abbildung 2: Löschen der geschützten EEPROM Bereiche

4 Gedanken zu „ESP8266: Flash Speicher löschen

  1. Hi, habe die Version 2.0.2 – auch hier kein Erase!
    Dies liegt sicherlich daran, dass man das entsprechende Board dazu auswählen muss und dass dann ggf. gewisse Funktionen nicht vorhanden sind.
    Habe es mit 2 verschiedenen Boards probiert, kein Erase unter Werkzeuge.

    1. Tut mir leid, das zu hören. Ich arbeite bisher nur mit den D1 Mini Microcontrollern und manchmal mit dem Huzzah Teil von Adafruit. Da funktioniert es problemlos.
      Ich weiß da auch nicht weiter. Sorry!
      Vielleicht hilft weiter googlen.
      VG
      Chris

    1. Hallo Herbert,
      ich habe gerade mal die 1.8.19 installiert und finde die Erase Funktion wie in meinem Beitrag angegeben unter “Werkzeuge” – siehe Screenshot im Beitrag. Ca. die 6. Zeile von unten.
      Viel Spaß noch.
      Chris

Schreibe einen Kommentar

Ich freue mich über Lob und Kritik.
Falls du Probleme mit der hier vorgestellten Anleitung hast und nicht weiter kommst:
Bitte das Problem oder die Fehlermeldung(en) möglichst genau beschreiben, auch an welcher Stelle (z.B. in welchem Node oder Befehl) und unter welchen Umständen der Fehler auftritt.
Gerne kannst du mir auch ein Mail schreiben. Die Adresse findest du im Impressum.
Ich gebe mir viel Mühe, meinen Lesern weiterzuhelfen. Je konkreter du bist, desto einfacher und schneller kann ich versuchen zu helfen.
Deine E-Mail-Adresse wird nicht veröffentlicht.
Erforderliche Felder sind mit * markiert