Dear all,
I am struggling with a strange issue.
Using ESP8266 Board version 2.5.0 everything is working fine, but using the latest version 2.7.4, I am getting “Fatal exception 3”. I want to emphasize the same code was uploaded using both versions. I tried with other versions above 2.5.0 but I have the same issue.
Could you please help me for provide a hint?
Please find below my code and the stack trace:
/*
* ESP8266 NodeMCU LED Control over WiFi Demo
*
* https://circuits4you.com
*/
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
//ESP Web Server Library to host a web page
#include <ESP8266WebServer.h>
//---------------------------------------------------------------
//Our HTML webpage contents in program memory
const char MAIN_page[] PROGMEM = R"=====(
<!DOCTYPE html>
<html>
<body>
<center>
<h1>WiFi LED on off demo: 1</h1>
Click to turn <a href="ledOn">LED ON</a>
Click to turn <a href="ledOff">LED OFF</a>
<hr>
</center>
</body>
</html>
)=====";
//---------------------------------------------------------------
//On board LED Connected to GPIO2
#define LED D1
//SSID and Password of your WiFi router
const char* ssid = "Adrianos";
const char* password = "cosmonaut";
//Declare a global object variable from the ESP8266WebServer class.
ESP8266WebServer server(80); //Server on port 80
//===============================================================
// This routine is executed when you open its IP in browser
//===============================================================
void handleRoot() {
Serial.println("You called root page");
String s = MAIN_page; //Read HTML contents
//Serial.println(s);
server.send(200, "text/html", s); //Send web page <----------------------Line 46
}
void handleLEDon() {
Serial.println("LED on page");
digitalWrite(LED,LOW); //LED is connected in reverse
server.send(200, "text/html", "LED is ON"); //Send ADC value only to client ajax request
}
void handleLEDoff() {
Serial.println("LED off page");
digitalWrite(LED,HIGH); //LED off
server.send(200, "text/html", "LED is OFF"); //Send ADC value only to client ajax request
}
//==============================================================
// SETUP
//==============================================================
void setup(void){
Serial.begin(115200);
WiFi.begin(ssid, password); //Connect to your WiFi router
Serial.println("");
//Onboard LED port Direction output
pinMode(LED,OUTPUT);
//Power on LED state off
digitalWrite(LED,HIGH);
// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
//If connection successful show IP address in serial monitor
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP()); //IP address assigned to your ESP
server.on("/", handleRoot); //Which routine to handle at root location. This is display page
server.on("/ledOn", handleLEDon); //as Per <a href="ledOn">, Subroutine to be called
server.on("/ledOff", handleLEDoff);
server.begin(); //Start server
Serial.println("HTTP server started");
}
//==============================================================
// LOOP
//==============================================================
void loop(void){
server.handleClient(); //Handle client requests
}
Exception 3: LoadStoreError: Processor internal physical address or data error during load or store
PC: 0x4000bf64
EXCVADDR: 0x4023d741
Decoding stack results
0x40205933: String::String(char const*) at C:\Users\alexandra.fasie\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\WString.cpp line 34
0x40203222: handleRoot() at C:\Users\alexandra.fasie\Desktop\Arduino project\sketch_dec26a/sketch_dec26a.ino line 47
0x40201bbc: esp8266webserver::FunctionRequestHandler ::handle(esp8266webserver::ESP8266WebServerTemplate &, HTTPMethod, String) at C:\Users\alexandra.fasie\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h line 42
0x40208418: esp8266webserver::FunctionRequestHandler ::canHandle(HTTPMethod, String) at C:\Users\alexandra.fasie\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h line 28
0x402083e6: std::_Function_handler ::_M_invoke(std::_Any_data const&) at c:\users\alexandra.fasie\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2/functional line 2073
0x401000e1: std::function ::operator()() const at c:\users\alexandra.fasie\documents\arduinodata\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2/functional line 2465
0x40201bf4: esp8266webserver::FunctionRequestHandler ::handle(esp8266webserver::ESP8266WebServerTemplate &, HTTPMethod, String) at C:\Users\alexandra.fasie\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h line 49
0x40203276: esp8266webserver::ESP8266WebServerTemplate ::_handleRequest() at C:\Users\alexandra.fasie\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h line 681
0x40100200: millis() at C:\Users\alexandra.fasie\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_wiring.cpp line 185
0x40203683: esp8266webserver::ESP8266WebServerTemplate ::handleClient() at C:\Users\alexandra.fasie\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/ESP8266WebServer-impl.h line 340
0x40100170: ets_post(uint8, ETSSignal, ETSParam) at C:\Users\alexandra.fasie\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 177
0x40203724: loop() at C:\Users\alexandra.fasie\Desktop\Arduino project\sketch_dec26a/sketch_dec26a.ino line 100
0x40206874: loop_wrapper() at C:\Users\alexandra.fasie\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_main.cpp line 197
Thank you in advance and best regards,
Adrian