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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.