Closed philfifi closed 1 month ago
Thanks for the detailed report. Looking...
Rally weird...
This is the diff between 3.3.15 and 3.3.16:
https://github.com/mathieucarbou/ESPAsyncWebServer/compare/v3.3.15...v3.3.16
The only change is a fix in the macro definition.
@vortigont : FYI
I can reproduce... This is caused by the literals...
@vortigont : I understand what is happening.
When moving the strings as constants in the literals file, your forgot to use FPSTR
at the places where these constants are used
See: https://arduino-esp8266.readthedocs.io/en/latest/PROGMEM.html
Ok so this is too complex to fix that everywhere. So I will rollback and update the literals file to not use PROGMEM. Strings will be in RAM fro 8266, like in 3.3.15.
Released https://github.com/mathieucarbou/ESPAsyncWebServer/releases/tag/v3.3.17, which brings back the code like 3.3.15.
Strings will be in RAM fro 8266, like in 3.3.15.
Ugh... can't wait the day when 8266 would perish
Ugh... can't wait the day when 8266 would perish
Out of curiosity, what architecture difference between ESP32 and ESP8266 required the use of PROGMEM
in ESP8266 for memory optimizations, while this isn't required for ESP32? As far as I could see, they are both Xtensa-based and use the same architecture.
The first commit to segregate the literals was first made in 18ed8fbe2af0ae99cb622238fa9bb845c3984cdd but it doesn't go into details about why it was applied. (Fun fact, the ~ESP8622~ instead of the correct ESP8266 bug was present from the very first there, so the macro definitions never worked in the first place except for 3.3.16 π)
This is the only information I could find about the use of PROGMEM. It doesn't say anything about ESP8266, though. https://esp32.com/viewtopic.php?t=20595
Lastly, wouldn't incorporating F()
in the literals.h file help with this? According to the docs, it uses FPSTR
and applies PROGMEM
so you don't have to do it manually. I would appreciate to learn more and dig more into this. ππ»
@DRSDavidSoft : your answers are all in this good article : https://arduino-esp8266.readthedocs.io/en/latest/PROGMEM.html
Description
On ESP8266, the lib always crashes even on very simple request. It is working on 3.3.15.
Stack trace
The code is:
Printing
_temp
givesGET / HTTP/1.1
Printing
m
givesGET
Additional notes
Reproduced doing a simple
curl 192.168.14.244
. With other versions, the esp answers "not found".Versions
Code
My program looks like:
(exact same code as #85)