Git Product home page Git Product logo

Comments (6)

lumapu avatar lumapu commented on August 23, 2024

duplicate #15
fix: b3bdf28

from ahoy.

lumapu avatar lumapu commented on August 23, 2024

übersetzter Stacktrace:

Decoding stack results
0x401001c8: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\usr\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\core_esp8266_main.cpp line 181
0x40100b8c: umm_init() at C:\Users\usr\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\umm_malloc\umm_malloc.cpp line 476
0x401000ac: app_entry_redefinable() at C:\Users\usr\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\core_esp8266_main.cpp line 325
0x401001c8: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\usr\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\core_esp8266_main.cpp line 181
0x4021e57c: pbuf_try_get_at at core/pbuf.c line 1392
0x401001c8: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\usr\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\core_esp8266_main.cpp line 181
0x4021907d: __hexnan at /workdir/repo/newlib/newlib/libc/stdlib/gdtoa-hexnan.c line 145
0x4021993a: __b2d at /workdir/repo/newlib/newlib/libc/stdlib/mprec.c line 691
0x40217fc3: _dtoa_r at /workdir/repo/newlib/newlib/libc/stdlib/dtoa.c line 498
0x401001c8: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\usr\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\core_esp8266_main.cpp line 181
0x4021993a: __b2d at /workdir/repo/newlib/newlib/libc/stdlib/mprec.c line 691
0x401001c8: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\usr\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\core_esp8266_main.cpp line 181
0x40214c2b: _printf_float at /workdir/repo/newlib/newlib/libc/stdio/nano-vfprintf_float.c line 205
0x40218655: _dtoa_r at /workdir/repo/newlib/newlib/libc/stdlib/dtoa.c line 808
0x40219c0c: __any_on at /workdir/repo/newlib/newlib/libc/stdlib/mprec.c line 1035
0x4021493d: isspace at /workdir/repo/newlib/newlib/libc/ctype/isspace.c line 49
0x40219c0c: __any_on at /workdir/repo/newlib/newlib/libc/stdlib/mprec.c line 1035
0x40215481: _printf_i at /workdir/repo/newlib/newlib/libc/stdio/nano-vfprintf_i.c line 163
0x40219c0c: __any_on at /workdir/repo/newlib/newlib/libc/stdlib/mprec.c line 1035
0x401001c8: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\usr\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\core_esp8266_main.cpp line 181
0x402155b0: _printf_i at /workdir/repo/newlib/newlib/libc/stdio/nano-vfprintf_i.c line 209
0x401001c8: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\usr\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\core_esp8266_main.cpp line 181
0x402098a6: WiFiServer::available(unsigned char*) at C:\Users\usr\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266WiFi\src\WiFiServer.cpp line 115
0x40207bf0: esp8266webserver::ESP8266WebServerTemplate ::handleClient() at C:\Users\usr\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h line 274
0x401001c8: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\usr\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\core_esp8266_main.cpp line 181
0x40207bd4: esp8266webserver::ESP8266WebServerTemplate ::handleClient() at C:\Users\usr\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h line 274
0x40207d62: esp8266webserver::ESP8266WebServerTemplate ::begin() at C:\Users\usr\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h line 372
0x401001c8: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\usr\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\core_esp8266_main.cpp line 181
0x40100348: delayMicroseconds(unsigned int) at C:\Users\usr\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\core_esp8266_wiring.cpp line 209
0x401001c8: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\usr\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\core_esp8266_main.cpp line 181
0x40211efd: cleanupFunctional(void*) at C:\Users\usr\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\FunctionalInterrupt.cpp line 32
0x4020c1d3: PubSubClient::loop() at C:\Users\usr\Documents\Arduino\libraries\PubSubClient\src\PubSubClient.cpp line 373
0x40203cf6: app::loop() at C:\github\ahoy\tools\esp8266/app.cpp line 160
0x401001c8: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\usr\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\core_esp8266_main.cpp line 181
0x401001e9: esp_schedule() at C:\Users\usr\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\core_esp8266_main.cpp line 128
0x4021041e: init_done() at C:\Users\usr\Documents\ArduinoData\packages\esp8266\hardware\esp8266\3.0.2\cores\esp8266\core_esp8266_main.cpp line 265

from ahoy.

dad401 avatar dad401 commented on August 23, 2024

Ist dieser Reset ein typischer ESP8266-Reset aufgrund "zu wenig Zeit für WLAN" oder etwas anderes? Bezieht sich "app::loop() at C:\github\ahoy\tools\esp8266/app.cpp line 160" nicht auf die Sendefunktion, die dem WLAN ggf. zuviel Zeit "klaut"?

(nur Spekulation, so tief stecke ich hier nicht drin)

from ahoy.

stefan123t avatar stefan123t commented on August 23, 2024

@dad401 hier ist der Commit für die 0.2.9 bei dem der o.a. Stacktrace mutmaßlich aufgetreten ist:
a9b7fd0

M.E. ist er außer in app::loop (app.cpp Zeile 160) auch in PubSubClient::loop und dort beim cleanupFunctional, etc.

Mir ist nicht ganz klar wie das esp8266webserver::ESP8266WebServerTemplate auf den Stack kommt, aber mein StackTrace in #15 hat auch den umm_init() Aufruf in umm_malloc.cpp relativ weit oben auf dem Stack. Ich habe daher die Vermutung daß evtl. die String Klasse im Constructor / Deconstructor sehr viel (oder zu viel?) Zeit verbringt. Bei den Templates müssen ja mehrere String Objekte angelegt werden und dann die {VARIABLEN} ausgetauscht werden. Dabei werden i.d.R. mehrere Instanzen erzeugt, die danach wieder aus dem Speicher entfernt werden müssen. Da die String Objekte (=ESP8266WebServerTemplates) relativ groß sind, dürfte das auch einige Zeit in Anspruch nehmen

Vielleicht versucht er auch WebServer und PubSubClient gleichzeitig zu handlen und schafft es daher nicht.

from ahoy.

stefan123t avatar stefan123t commented on August 23, 2024

Ich habe mir mal angesehen wie es denn andere Projekte (hier Tasmota) machen.

void SleepDelay(uint32_t mseconds) {
  if (!TasmotaGlobal.backlog_nodelay && mseconds) {
    uint32_t wait = millis() + mseconds;
    while (!TimeReached(wait) && !Serial.available() && !TasmotaGlobal.skip_sleep) {  
      // We need to service serial buffer ASAP as otherwise we get uart buffer overrun
      delay(1);
    }
  } else {
    delay(0);
  }
}

from ahoy.

lumapu avatar lumapu commented on August 23, 2024

das sieht ähnlich zu meiner checkTicker Routine in main.h. Komisch finde ich dem Beispiel das delay(0). Bin eigentlich gerade ganz glücklich über die Stabilität.
Da es hier um Version 0.2.9 geht werde ich den Issue jetzt schließen.

from ahoy.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.