esp12e crashed nach erstem Klassen aufruf

Hallo,

Ich erzeuge im setup meine Firmware Klasse, wo ich beim initialisieren eine Member Variable von PubSubClient wie folgt initialisiere.

mqttClient = new PubSubClient(_client);

Dass verbinden zum mqtt broker funktioniert dann wie es sollte.

Wenn ich dann im ersten durchlauf der loop über die Firmware Klasse wieder den mqttClient ansprechen will crashed das Board mit:

Exception (0):
epc1=0x3a6e6f69 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000

ctx: cont
sp: 3ffffd70 end: 3fffffd0 offset: 01a0

nach der "angekommen" Message.

 Serial.println("angekommen");
 if (!mqttClient->connected()) {
     Serial.println("reconnect mqtt!");
     reconnect();
 }
 Serial.println("loop mqtt fm");
 mqttClient->loop();

Wenn ich den Pointer ausgebe, ist es die selbe Adresse im init und im ersten aufruf.

Woran könnte der crash liegen?

Setze Deinen Code bitte in Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *).
Dann ist er auch auf mobilen Geräten besser lesbar.
Das kannst Du auch noch nachträglich ändern.

Installiere Dir mal den ESP-Exceptiondecoder.

Gruß Tommy

vielen dank!

Ich versuche dass mal.

Exception (0):

Illegal Instruction

In der Regel:
Dreck auf der Stromversorgung, falsch angeschlossene Pins, oder Flash kaputt.
Auch, Bit Fehler beim Upload.

Möglich:
Kompiler defekt, aber sehr sehr unwahrscheinlich.

Ok mit debugging output:

Exception (0):
epc1=0xf00d10ca epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000

Illegal instruction

>>>stack>>>
3fff0920:  feefeffe feefeffe feefeffe 401014ad
3fff0920:  feefeffe feefeffe feefeffe 401014ad
3fff0920:  feefeffe feefeffe feefeffe 401014ad
<<<stack<<<

0x40209f88 in Firmware::mqttLoop() at lib\Firmware/Firware.cpp:72
0x40201243 in loop at src/main.cpp:127
0x4020c7ef in loop_wrapper() at C:\Users\Dell9560\.platformio\packages\framework-arduinoespressif8266\cores\esp8266/core_esp8266_main.cpp:180

0x401014ad in cont_wrapper at C:\Users\Dell9560\.platformio\packages\framework-arduinoespressif8266\cores\esp8266/cont.S:81

Illegal Instruction wie combie sagt.

Dreck auf der Stromversorgung, falsch angeschlossene Pins, oder Flash kaputt.
Auch, Bit Fehler beim Upload.

Dass kommt mir aber komisch vor, da sobald ich die Zeile auskommentiere mein esp über ne stunde ohne probleme rennt und alles andere funktioniert problemlos.

*edit:

Habe jetzt die definition von

WiFiClient client;

in die Firmware Klasse verlegt und jetzt rennt alles wie es soll ...

danke drotzdem !

Dass kommt mir aber komisch vor,

Darf es.
(lohnt sich aber nicht)

Tipp:
Der Mensch sieht gerne Verbindungen dort, wo keine sind.
Denn das macht das Leben einfacher.

Der Nachweis ist sogar recht leicht zu führen:
Teste mit einem anderen Board.

hab dass Problem gefunden (siehe edit oben), aber danke dir! :slight_smile:

mstranne:
hab dass Problem gefunden (siehe edit oben), aber danke dir! :slight_smile:

Glaube ich nicht.
Das dürfte nur ein Flicken sein, der zufällig den Fehler verdeckt.

Leider sehe ich nix von dem, was du da tust.
Damit keine belastbare Sinnbeurteilung.

und jetzt rennt alles wie es soll ...

Ich bin mal gespannt, wie lange.

haha ja du könntest recht behalten!

auf dem aktuellen board hat schon einige (leihen) Korrektur Lötungen hinter sich, würde mich nicht wundern wenn dabei was kaputt gegangen ist.

Aber sobald ich wieder physisch zur Arbeit kann, habe ich die neuen boards zu Verfügung, dann sollte alles passen.

Danke für die Hilfe, ich programmiere normalerweise keine Mikrocontroller!