Closed
Description
Basic Infos
- [x ] This issue complies with the issue POLICY doc.
- [x ] I have read the documentation at readthedocs and the issue is not addressed there.
- [x ] I have tested that the issue is present in current master branch (aka latest git).
- [ x] I have searched the issue tracker for a similar issue.
- [ ] If there is a stack dump, I have decoded it.
- [x ] I have filled out all fields below.
Platform
- Hardware: ESP-12
- Core Version: git | last commit I have
2528013c5dc1ce7703bf211b41a3aefcd6afe0e5
- Development Env: Arduino IDE
- Operating System: MacOS
Settings in IDE
- Module: Generic ESP8266 Module
- Flash Mode: qio
- Flash Size: 4MB
- lwip Variant: v2 Higher Bandwidth
- Reset Method: ck
- Flash Frequency: 40Mhz
- CPU Frequency: 80Mhz
- Upload Using: OTA
- Debug Port: Serial
- Debug Level: Core
- Espressif FW: 2.2.1
Problem Description
Detailed problem description goes here.
OTA updates crash with Fatal exception 3(LoadStoreErrorCause)
when there is a UDP server running AND CORE debug is enabled.
If CORE debug is disabled, it works just fine.
Haven't been able to decode the stack, because with the the git version the ESPExceptionDecoder is not able to locate the file xtensa-lx106-elf-addr2line
:ERROR: xtensa-lx106-elf-addr2line not found!
MCVE Sketch
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266HTTPUpdateServer.h>
#include <WiFiUDP.h>
unsigned int localPort = 8888;
#ifndef STASSID
#define STASSID "ssid"
#define STAPSK "password"
#endif
const char* ssid = STASSID;
const char* password = STAPSK;
ESP8266WebServer httpServer(80);
ESP8266HTTPUpdateServer httpUpdater;
WiFiUDP Udp;
char packetBuffer[UDP_TX_PACKET_MAX_SIZE];
void setup(void) {
Serial.begin(9600);
Serial.println();
Serial.println("Booting Sketch...");
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.waitForConnectResult() != WL_CONNECTED) {
WiFi.begin(ssid, password);
Serial.println("WiFi failed, retrying.");
}
Serial.print("IP: ");
Serial.println(WiFi.localIP());
httpUpdater.setup(&httpServer);
httpServer.begin();
Udp.begin(localPort);
}
void loop(void) {
httpServer.handleClient();
// if there's data available, read a packet
int packetSize = Udp.parsePacket();
if (packetSize) {
Serial.print("Received packet of size ");
Serial.println(packetSize);
Serial.print("From ");
IPAddress remote = Udp.remoteIP();
for (int i = 0; i < 4; i++) {
Serial.print(remote[i], DEC);
if (i < 3) {
Serial.print(".");
}
}
Serial.print(", port ");
Serial.println(Udp.remotePort());
// read the packet into packetBufffer
Udp.read(packetBuffer, UDP_TX_PACKET_MAX_SIZE);
Serial.println("Contents:");
Serial.println(packetBuffer);
}
delay(10);
}
Metadata
Metadata
Assignees
Labels
No labels