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
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.
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
Hallo, ein guter Hinweis, habe die Version 1.8.19 ABER die Möglichkeit "erase" sehe ich nicht. Gibt es einen einfachen Hinweis wie man hinfindet ?
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