From 939e3430de598d32f6c6f59c4ccc28828289f4f7 Mon Sep 17 00:00:00 2001 From: Buzz Burrowes Date: Wed, 30 Dec 2015 23:30:15 -0500 Subject: [PATCH 1/6] Fixed crash bug with mDNS where a string buffer could be used uninitialized. --- libraries/ESP8266mDNS/ESP8266mDNS.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libraries/ESP8266mDNS/ESP8266mDNS.cpp b/libraries/ESP8266mDNS/ESP8266mDNS.cpp index 2e5c711fb..34fdd4757 100644 --- a/libraries/ESP8266mDNS/ESP8266mDNS.cpp +++ b/libraries/ESP8266mDNS/ESP8266mDNS.cpp @@ -290,7 +290,8 @@ void MDNSResponder::_parsePacket(){ uint16_t servicePort = 0; char protoName[32]; - uint8_t protoNameLen; + protoName[0] = 0; + uint8_t protoNameLen = 0; uint16_t packetHeader[6]; @@ -330,7 +331,7 @@ void MDNSResponder::_parsePacket(){ serviceName[serviceNameLen] = '\0'; if(serviceName[0] == '_'){ - memcpy(serviceName, serviceName+1, serviceNameLen); + memmove(serviceName, serviceName+1, serviceNameLen); serviceNameLen--; serviceParsed = true; } else if(serviceNameLen == 5 && strcmp("local", serviceName) == 0){ @@ -362,7 +363,7 @@ void MDNSResponder::_parsePacket(){ _conn_readS(protoName, protoNameLen); protoName[protoNameLen] = '\0'; if(protoNameLen == 4 && protoName[0] == '_'){ - memcpy(protoName, protoName+1, protoNameLen); + memmove(protoName, protoName+1, protoNameLen); protoNameLen--; protoParsed = true; } else { From 9b369dbae40a0bc220ec298db9351481aef2bb6f Mon Sep 17 00:00:00 2001 From: Buzz Burrowes Date: Fri, 1 Jan 2016 00:14:41 -0500 Subject: [PATCH 2/6] empty committ for pull request --- libraries/ESP8266mDNS/ESP8266mDNS.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/ESP8266mDNS/ESP8266mDNS.cpp b/libraries/ESP8266mDNS/ESP8266mDNS.cpp index 34fdd4757..a690bdf22 100644 --- a/libraries/ESP8266mDNS/ESP8266mDNS.cpp +++ b/libraries/ESP8266mDNS/ESP8266mDNS.cpp @@ -495,7 +495,7 @@ void MDNSResponder::_reply(uint8_t replyMask, char * service, char *proto, uint1 size_t hostNameLen = hostName.length(); char underscore[] = "_"; - + // build service name with _ char serviceName[os_strlen(service)+2]; os_strcpy(serviceName,underscore); From 2b23b005aab605f1fb74bd2bbd388728b69ead86 Mon Sep 17 00:00:00 2001 From: Markus Sattler Date: Sat, 2 Jan 2016 12:24:05 +0100 Subject: [PATCH 3/6] allow control of enabling debug and debug level from IDE --- boards.txt | 26 ++++++++++ cores/esp8266/core_esp8266_main.cpp | 3 ++ cores/esp8266/debug.h | 4 +- .../ESP8266HTTPClient/src/ESP8266HTTPClient.h | 6 ++- .../ESP8266WebServer/src/ESP8266WebServer.cpp | 13 +++-- libraries/ESP8266WebServer/src/Parsing.cpp | 50 ++++++++++--------- .../ESP8266WiFi/src/WiFiClientSecure.cpp | 4 +- .../ESP8266httpUpdate/src/ESP8266httpUpdate.h | 6 ++- platform.txt | 6 +-- 9 files changed, 84 insertions(+), 34 deletions(-) diff --git a/boards.txt b/boards.txt index d59c254ee..cea94eeeb 100644 --- a/boards.txt +++ b/boards.txt @@ -6,6 +6,8 @@ menu.FlashFreq=Flash Frequency menu.UploadTool=Upload Using menu.ResetMethod=Reset Method menu.ESPModule=Module +menu.Debug=Debug port +menu.DebugLevel=Debug Level ############################################################## generic.name=Generic ESP8266 Module @@ -26,6 +28,8 @@ generic.build.core=esp8266 generic.build.variant=generic generic.build.flash_mode=qio generic.build.spiffs_pagesize=256 +generic.build.debug_port= +generic.build.debug_level= generic.menu.UploadTool.esptool=Serial generic.menu.UploadTool.esptool.upload.tool=esptool @@ -166,6 +170,28 @@ generic.menu.ResetMethod.ck.upload.resetmethod=ck generic.menu.ResetMethod.nodemcu=nodemcu generic.menu.ResetMethod.nodemcu.upload.resetmethod=nodemcu +generic.menu.Debug.Disabled=Disabled +generic.menu.Debug.Disabled.build.debug_port= +generic.menu.Debug.Serial=Serial +generic.menu.Debug.Serial.build.debug_port=-DDEBUG_ESP_PORT=Serial +generic.menu.Debug.Serial1=Serial1 +generic.menu.Debug.Serial1.build.debug_port=-DDEBUG_ESP_PORT=Serial1 + +generic.menu.DebugLevel.None=None +generic.menu.DebugLevel.None.build.debug_level= +generic.menu.DebugLevel.Core=Core +generic.menu.DebugLevel.Core.build.debug_level=-DDEBUG_ESP_CORE +generic.menu.DebugLevel.SSL=Core + SSL +generic.menu.DebugLevel.SSL.build.debug_level=-DDEBUG_ESP_CORE -DDEBUG_ESP_SSL +generic.menu.DebugLevel.HTTPClient=HTTPClient +generic.menu.DebugLevel.HTTPClient.build.debug_level=-DDEBUG_ESP_HTTP_CLIENT +generic.menu.DebugLevel.HTTPUpdate=HTTPUpdate +generic.menu.DebugLevel.HTTPUpdate.build.debug_level=-DDEBUG_ESP_HTTP_UPDATE +generic.menu.DebugLevel.HTTPUpdate2=HTTPClient + HTTPUpdate +generic.menu.DebugLevel.HTTPUpdate2.build.debug_level=-DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_HTTP_UPDATE +generic.menu.DebugLevel.HTTPServer=HTTPServer +generic.menu.DebugLevel.HTTPServer.build.debug_level=-DDEBUG_ESP_HTTP_SERVER + # disabled because espressif's bootloader refuses to write above 4M # generic.menu.FlashSize.8M=8M (7M SPIFFS) # generic.menu.FlashSize.8M.build.flash_size=1M diff --git a/cores/esp8266/core_esp8266_main.cpp b/cores/esp8266/core_esp8266_main.cpp index f4a122415..0c1eb02bf 100644 --- a/cores/esp8266/core_esp8266_main.cpp +++ b/cores/esp8266/core_esp8266_main.cpp @@ -101,6 +101,9 @@ static void loop_wrapper() { preloop_update_frequency(); if(!setup_done) { setup(); +#ifdef DEBUG_ESP_PORT + DEBUG_ESP_PORT.setDebugOutput(true); +#endif setup_done = true; } loop(); diff --git a/cores/esp8266/debug.h b/cores/esp8266/debug.h index 98bdaf03c..89d18c05b 100644 --- a/cores/esp8266/debug.h +++ b/cores/esp8266/debug.h @@ -4,7 +4,9 @@ #include #include -//#define DEBUGV(...) ets_printf(__VA_ARGS__) +#ifdef DEBUG_ESP_CORE +#define DEBUGV(...) ets_printf(__VA_ARGS__) +#endif #ifndef DEBUGV #define DEBUGV(...) diff --git a/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h b/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h index bcd1cc3a1..704841a8c 100644 --- a/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h +++ b/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h @@ -25,7 +25,11 @@ #ifndef ESP8266HTTPClient_H_ #define ESP8266HTTPClient_H_ -//#define DEBUG_HTTPCLIENT(...) Serial1.printf( __VA_ARGS__ ) +#ifdef DEBUG_ESP_HTTP_CLIENT +#ifdef DEBUG_ESP_PORT +#define DEBUG_HTTPCLIENT(...) DEBUG_ESP_PORT.printf( __VA_ARGS__ ) +#endif +#endif #ifndef DEBUG_HTTPCLIENT #define DEBUG_HTTPCLIENT(...) diff --git a/libraries/ESP8266WebServer/src/ESP8266WebServer.cpp b/libraries/ESP8266WebServer/src/ESP8266WebServer.cpp index a2c8a9866..77e59af6a 100644 --- a/libraries/ESP8266WebServer/src/ESP8266WebServer.cpp +++ b/libraries/ESP8266WebServer/src/ESP8266WebServer.cpp @@ -28,8 +28,13 @@ #include "ESP8266WebServer.h" #include "FS.h" #include "detail/RequestHandlersImpl.h" -// #define DEBUG + +//#define DEBUG_ESP_HTTP_SERVER +#ifdef DEBUG_ESP_PORT +#define DEBUG_OUTPUT DEBUG_ESP_PORT +#else #define DEBUG_OUTPUT Serial +#endif const char * AUTHORIZATION_HEADER = "Authorization"; @@ -155,7 +160,7 @@ void ESP8266WebServer::handleClient() { return; } -#ifdef DEBUG +#ifdef DEBUG_ESP_HTTP_SERVER DEBUG_OUTPUT.println("New client"); #endif @@ -416,13 +421,13 @@ void ESP8266WebServer::onNotFound(THandlerFunction fn) { void ESP8266WebServer::_handleRequest() { bool handled = false; if (!_currentHandler){ -#ifdef DEBUG +#ifdef DEBUG_ESP_HTTP_SERVER DEBUG_OUTPUT.println("request handler not found"); #endif } else { handled = _currentHandler->handle(*this, _currentMethod, _currentUri); -#ifdef DEBUG +#ifdef DEBUG_ESP_HTTP_SERVER if (!handled) { DEBUG_OUTPUT.println("request handler failed to handle request"); } diff --git a/libraries/ESP8266WebServer/src/Parsing.cpp b/libraries/ESP8266WebServer/src/Parsing.cpp index 26304946b..7eac20def 100644 --- a/libraries/ESP8266WebServer/src/Parsing.cpp +++ b/libraries/ESP8266WebServer/src/Parsing.cpp @@ -24,8 +24,12 @@ #include "WiFiClient.h" #include "ESP8266WebServer.h" -//#define DEBUG +//#define DEBUG_ESP_HTTP_SERVER +#ifdef DEBUG_ESP_PORT +#define DEBUG_OUTPUT DEBUG_ESP_PORT +#else #define DEBUG_OUTPUT Serial +#endif bool ESP8266WebServer::_parseRequest(WiFiClient& client) { // Read the first line of HTTP request @@ -41,7 +45,7 @@ bool ESP8266WebServer::_parseRequest(WiFiClient& client) { int addr_start = req.indexOf(' '); int addr_end = req.indexOf(' ', addr_start + 1); if (addr_start == -1 || addr_end == -1) { -#ifdef DEBUG +#ifdef DEBUG_ESP_HTTP_SERVER DEBUG_OUTPUT.print("Invalid request: "); DEBUG_OUTPUT.println(req); #endif @@ -72,7 +76,7 @@ bool ESP8266WebServer::_parseRequest(WiFiClient& client) { } _currentMethod = method; -#ifdef DEBUG +#ifdef DEBUG_ESP_HTTP_SERVER DEBUG_OUTPUT.print("method: "); DEBUG_OUTPUT.print(methodStr); DEBUG_OUTPUT.print(" url: "); @@ -111,7 +115,7 @@ bool ESP8266WebServer::_parseRequest(WiFiClient& client) { headerValue.trim(); _collectHeader(headerName.c_str(),headerValue.c_str()); - #ifdef DEBUG + #ifdef DEBUG_ESP_HTTP_SERVER DEBUG_OUTPUT.print("headerName: "); DEBUG_OUTPUT.println(headerName); DEBUG_OUTPUT.print("headerValue: "); @@ -142,7 +146,7 @@ bool ESP8266WebServer::_parseRequest(WiFiClient& client) { char *plainBuf = (char*)malloc(plainLen+1); client.readBytes(plainBuf, plainLen); plainBuf[plainLen] = '\0'; -#ifdef DEBUG +#ifdef DEBUG_ESP_HTTP_SERVER DEBUG_OUTPUT.print("Plain: "); DEBUG_OUTPUT.println(plainBuf); #endif @@ -177,7 +181,7 @@ bool ESP8266WebServer::_parseRequest(WiFiClient& client) { headerValue = req.substring(headerDiv + 2); _collectHeader(headerName.c_str(),headerValue.c_str()); - #ifdef DEBUG + #ifdef DEBUG_ESP_HTTP_SERVER DEBUG_OUTPUT.print("headerName: "); DEBUG_OUTPUT.println(headerName); DEBUG_OUTPUT.print("headerValue: "); @@ -192,7 +196,7 @@ bool ESP8266WebServer::_parseRequest(WiFiClient& client) { } client.flush(); -#ifdef DEBUG +#ifdef DEBUG_ESP_HTTP_SERVER DEBUG_OUTPUT.print("Request: "); DEBUG_OUTPUT.println(url); DEBUG_OUTPUT.print(" Arguments: "); @@ -213,7 +217,7 @@ bool ESP8266WebServer::_collectHeader(const char* headerName, const char* header } void ESP8266WebServer::_parseArguments(String data) { -#ifdef DEBUG +#ifdef DEBUG_ESP_HTTP_SERVER DEBUG_OUTPUT.print("args: "); DEBUG_OUTPUT.println(data); #endif @@ -233,7 +237,7 @@ void ESP8266WebServer::_parseArguments(String data) { ++i; ++_currentArgCount; } -#ifdef DEBUG +#ifdef DEBUG_ESP_HTTP_SERVER DEBUG_OUTPUT.print("args count: "); DEBUG_OUTPUT.println(_currentArgCount); #endif @@ -244,7 +248,7 @@ void ESP8266WebServer::_parseArguments(String data) { for (iarg = 0; iarg < _currentArgCount;) { int equal_sign_index = data.indexOf('=', pos); int next_arg_index = data.indexOf('&', pos); -#ifdef DEBUG +#ifdef DEBUG_ESP_HTTP_SERVER DEBUG_OUTPUT.print("pos "); DEBUG_OUTPUT.print(pos); DEBUG_OUTPUT.print("=@ "); @@ -253,7 +257,7 @@ void ESP8266WebServer::_parseArguments(String data) { DEBUG_OUTPUT.println(next_arg_index); #endif if ((equal_sign_index == -1) || ((equal_sign_index > next_arg_index) && (next_arg_index != -1))) { -#ifdef DEBUG +#ifdef DEBUG_ESP_HTTP_SERVER DEBUG_OUTPUT.print("arg missing value: "); DEBUG_OUTPUT.println(iarg); #endif @@ -265,7 +269,7 @@ void ESP8266WebServer::_parseArguments(String data) { RequestArgument& arg = _currentArgs[iarg]; arg.key = data.substring(pos, equal_sign_index); arg.value = urlDecode(data.substring(equal_sign_index + 1, next_arg_index)); -#ifdef DEBUG +#ifdef DEBUG_ESP_HTTP_SERVER DEBUG_OUTPUT.print("arg "); DEBUG_OUTPUT.print(iarg); DEBUG_OUTPUT.print(" key: "); @@ -279,7 +283,7 @@ void ESP8266WebServer::_parseArguments(String data) { pos = next_arg_index + 1; } _currentArgCount = iarg; -#ifdef DEBUG +#ifdef DEBUG_ESP_HTTP_SERVER DEBUG_OUTPUT.print("args count: "); DEBUG_OUTPUT.println(_currentArgCount); #endif @@ -308,7 +312,7 @@ uint8_t ESP8266WebServer::_uploadReadByte(WiFiClient& client){ bool ESP8266WebServer::_parseForm(WiFiClient& client, String boundary, uint32_t len){ -#ifdef DEBUG +#ifdef DEBUG_ESP_HTTP_SERVER DEBUG_OUTPUT.print("Parse Form: Boundary: "); DEBUG_OUTPUT.print(boundary); DEBUG_OUTPUT.print(" Length: "); @@ -346,14 +350,14 @@ bool ESP8266WebServer::_parseForm(WiFiClient& client, String boundary, uint32_t argFilename = argName.substring(nameStart+2, argName.length() - 1); argName = argName.substring(0, argName.indexOf('"')); argIsFile = true; -#ifdef DEBUG +#ifdef DEBUG_ESP_HTTP_SERVER DEBUG_OUTPUT.print("PostArg FileName: "); DEBUG_OUTPUT.println(argFilename); #endif //use GET to set the filename if uploading using blob if (argFilename == "blob" && hasArg("filename")) argFilename = arg("filename"); } -#ifdef DEBUG +#ifdef DEBUG_ESP_HTTP_SERVER DEBUG_OUTPUT.print("PostArg Name: "); DEBUG_OUTPUT.println(argName); #endif @@ -366,7 +370,7 @@ bool ESP8266WebServer::_parseForm(WiFiClient& client, String boundary, uint32_t client.readStringUntil('\r'); client.readStringUntil('\n'); } -#ifdef DEBUG +#ifdef DEBUG_ESP_HTTP_SERVER DEBUG_OUTPUT.print("PostArg Type: "); DEBUG_OUTPUT.println(argType); #endif @@ -378,7 +382,7 @@ bool ESP8266WebServer::_parseForm(WiFiClient& client, String boundary, uint32_t if (argValue.length() > 0) argValue += "\n"; argValue += line; } -#ifdef DEBUG +#ifdef DEBUG_ESP_HTTP_SERVER DEBUG_OUTPUT.print("PostArg Value: "); DEBUG_OUTPUT.println(argValue); DEBUG_OUTPUT.println(); @@ -389,7 +393,7 @@ bool ESP8266WebServer::_parseForm(WiFiClient& client, String boundary, uint32_t arg.value = argValue; if (line == ("--"+boundary+"--")){ -#ifdef DEBUG +#ifdef DEBUG_ESP_HTTP_SERVER DEBUG_OUTPUT.println("Done Parsing POST"); #endif break; @@ -401,7 +405,7 @@ bool ESP8266WebServer::_parseForm(WiFiClient& client, String boundary, uint32_t _currentUpload.type = argType; _currentUpload.totalSize = 0; _currentUpload.currentSize = 0; -#ifdef DEBUG +#ifdef DEBUG_ESP_HTTP_SERVER DEBUG_OUTPUT.print("Start File: "); DEBUG_OUTPUT.print(_currentUpload.filename); DEBUG_OUTPUT.print(" Type: "); @@ -450,7 +454,7 @@ readfile: _currentUpload.status = UPLOAD_FILE_END; if(_currentHandler && _currentHandler->canUpload(_currentUri)) _currentHandler->upload(*this, _currentUri, _currentUpload); -#ifdef DEBUG +#ifdef DEBUG_ESP_HTTP_SERVER DEBUG_OUTPUT.print("End File: "); DEBUG_OUTPUT.print(_currentUpload.filename); DEBUG_OUTPUT.print(" Type: "); @@ -461,7 +465,7 @@ readfile: line = client.readStringUntil(0x0D); client.readStringUntil(0x0A); if (line == "--"){ -#ifdef DEBUG +#ifdef DEBUG_ESP_HTTP_SERVER DEBUG_OUTPUT.println("Done Parsing POST"); #endif break; @@ -507,7 +511,7 @@ readfile: if (postArgs) delete[] postArgs; return true; } -#ifdef DEBUG +#ifdef DEBUG_ESP_HTTP_SERVER DEBUG_OUTPUT.print("Error: line: "); DEBUG_OUTPUT.println(line); #endif diff --git a/libraries/ESP8266WiFi/src/WiFiClientSecure.cpp b/libraries/ESP8266WiFi/src/WiFiClientSecure.cpp index 484a23fc0..1c6b3bb37 100644 --- a/libraries/ESP8266WiFi/src/WiFiClientSecure.cpp +++ b/libraries/ESP8266WiFi/src/WiFiClientSecure.cpp @@ -41,7 +41,9 @@ extern "C" #include "include/ClientContext.h" #include "c_types.h" -//#define DEBUG_SSL +#ifdef DEBUG_ESP_SSL +#define DEBUG_SSL +#endif #ifdef DEBUG_SSL #define SSL_DEBUG_OPTS SSL_DISPLAY_STATES diff --git a/libraries/ESP8266httpUpdate/src/ESP8266httpUpdate.h b/libraries/ESP8266httpUpdate/src/ESP8266httpUpdate.h index ddfefb44b..81f03385f 100644 --- a/libraries/ESP8266httpUpdate/src/ESP8266httpUpdate.h +++ b/libraries/ESP8266httpUpdate/src/ESP8266httpUpdate.h @@ -32,7 +32,11 @@ #include #include -//#define DEBUG_HTTP_UPDATE(...) Serial1.printf( __VA_ARGS__ ) +#ifdef DEBUG_ESP_HTTP_UPDATE +#ifdef DEBUG_ESP_PORT +#define DEBUG_HTTP_UPDATE(...) DEBUG_ESP_PORT.printf( __VA_ARGS__ ) +#endif +#endif #ifndef DEBUG_HTTP_UPDATE #define DEBUG_HTTP_UPDATE(...) diff --git a/platform.txt b/platform.txt index efeb816e9..52c5eac5e 100644 --- a/platform.txt +++ b/platform.txt @@ -61,13 +61,13 @@ compiler.objcopy.eep.extra_flags= compiler.elf2hex.extra_flags= ## Compile c files -recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.cpreprocessor.flags} {compiler.c.flags} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.c.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" +recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.cpreprocessor.flags} {compiler.c.flags} -DF_CPU={build.f_cpu} {build.debug_port} {build.debug_level} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.c.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" ## Compile c++ files -recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpreprocessor.flags} {compiler.cpp.flags} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.cpp.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" +recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpreprocessor.flags} {compiler.cpp.flags} -DF_CPU={build.f_cpu} {build.debug_port} {build.debug_level} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.cpp.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" ## Compile S files -recipe.S.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.cpreprocessor.flags} {compiler.S.flags} -DF_CPU={build.f_cpu} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.c.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" +recipe.S.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.cpreprocessor.flags} {compiler.S.flags} -DF_CPU={build.f_cpu} {build.debug_port} {build.debug_level} -DARDUINO={runtime.ide.version} -DARDUINO_{build.board} -DARDUINO_ARCH_{build.arch} {compiler.c.extra_flags} {build.extra_flags} {includes} "{source_file}" -o "{object_file}" ## Create archives recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{build.path}/arduino.ar" "{object_file}" From 995f02f43730a3f4f98189b67c47bc6460b0da52 Mon Sep 17 00:00:00 2001 From: Markus Sattler Date: Sat, 2 Jan 2016 12:54:34 +0100 Subject: [PATCH 4/6] add more debug levels --- boards.txt | 10 ++++++++++ cores/esp8266/Updater.h | 6 +++++- libraries/ESP8266WiFi/src/ESP8266WiFiMulti.h | 6 +++++- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/boards.txt b/boards.txt index cea94eeeb..389aee3b2 100644 --- a/boards.txt +++ b/boards.txt @@ -183,14 +183,24 @@ generic.menu.DebugLevel.Core=Core generic.menu.DebugLevel.Core.build.debug_level=-DDEBUG_ESP_CORE generic.menu.DebugLevel.SSL=Core + SSL generic.menu.DebugLevel.SSL.build.debug_level=-DDEBUG_ESP_CORE -DDEBUG_ESP_SSL +generic.menu.DebugLevel.WiFic=Core + WiFi +generic.menu.DebugLevel.WiFic.build.debug_level=-DDEBUG_ESP_CORE -DDEBUG_ESP_WIFI +generic.menu.DebugLevel.WiFi=WiFi +generic.menu.DebugLevel.WiFi.build.debug_level=-DDEBUG_ESP_WIFI generic.menu.DebugLevel.HTTPClient=HTTPClient generic.menu.DebugLevel.HTTPClient.build.debug_level=-DDEBUG_ESP_HTTP_CLIENT generic.menu.DebugLevel.HTTPUpdate=HTTPUpdate generic.menu.DebugLevel.HTTPUpdate.build.debug_level=-DDEBUG_ESP_HTTP_UPDATE generic.menu.DebugLevel.HTTPUpdate2=HTTPClient + HTTPUpdate generic.menu.DebugLevel.HTTPUpdate2.build.debug_level=-DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_HTTP_UPDATE +generic.menu.DebugLevel.HTTPUpdate3=HTTPClient + HTTPUpdate + Updater +generic.menu.DebugLevel.HTTPUpdate3.build.debug_level=-DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER generic.menu.DebugLevel.HTTPServer=HTTPServer generic.menu.DebugLevel.HTTPServer.build.debug_level=-DDEBUG_ESP_HTTP_SERVER +generic.menu.DebugLevel.UPDATER=Updater (OTA) +generic.menu.DebugLevel.UPDATER.build.debug_level=-DDEBUG_ESP_UPDATER +generic.menu.DebugLevel.all=All +generic.menu.DebugLevel.all.build.debug_level=-DDEBUG_ESP_CORE -DDEBUG_ESP_SSL -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_UPDATER # disabled because espressif's bootloader refuses to write above 4M # generic.menu.FlashSize.8M=8M (7M SPIFFS) diff --git a/cores/esp8266/Updater.h b/cores/esp8266/Updater.h index 48fe8560f..49a1c4504 100644 --- a/cores/esp8266/Updater.h +++ b/cores/esp8266/Updater.h @@ -22,7 +22,11 @@ #define U_SPIFFS 100 #define U_AUTH 200 -//#define DEBUG_UPDATER Serial +#ifdef DEBUG_ESP_UPDATER +#ifdef DEBUG_ESP_PORT +#define DEBUG_UPDATER DEBUG_ESP_PORT +#endif +#endif class UpdaterClass { public: diff --git a/libraries/ESP8266WiFi/src/ESP8266WiFiMulti.h b/libraries/ESP8266WiFi/src/ESP8266WiFiMulti.h index 63c180c31..1b4b75020 100644 --- a/libraries/ESP8266WiFi/src/ESP8266WiFiMulti.h +++ b/libraries/ESP8266WiFi/src/ESP8266WiFiMulti.h @@ -32,7 +32,11 @@ #undef max #include -//#define DEBUG_WIFI_MULTI(...) Serial1.printf( __VA_ARGS__ ) +#ifdef DEBUG_ESP_WIFI +#ifdef DEBUG_ESP_PORT +#define DEBUG_WIFI_MULTI(...) DEBUG_ESP_PORT.printf( __VA_ARGS__ ) +#endif +#endif #ifndef DEBUG_WIFI_MULTI #define DEBUG_WIFI_MULTI(...) From 137c50757eacf4423d35ea9cde65dcae8db93337 Mon Sep 17 00:00:00 2001 From: Markus Sattler Date: Sat, 2 Jan 2016 12:58:56 +0100 Subject: [PATCH 5/6] add OTA debug level --- boards.txt | 8 ++++++-- libraries/ArduinoOTA/ArduinoOTA.cpp | 31 +++++++++++++++++------------ 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/boards.txt b/boards.txt index 389aee3b2..9e80cefa9 100644 --- a/boards.txt +++ b/boards.txt @@ -197,10 +197,14 @@ generic.menu.DebugLevel.HTTPUpdate3=HTTPClient + HTTPUpdate + Updater generic.menu.DebugLevel.HTTPUpdate3.build.debug_level=-DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_UPDATER generic.menu.DebugLevel.HTTPServer=HTTPServer generic.menu.DebugLevel.HTTPServer.build.debug_level=-DDEBUG_ESP_HTTP_SERVER -generic.menu.DebugLevel.UPDATER=Updater (OTA) +generic.menu.DebugLevel.UPDATER=Updater generic.menu.DebugLevel.UPDATER.build.debug_level=-DDEBUG_ESP_UPDATER +generic.menu.DebugLevel.OTA=OTA +generic.menu.DebugLevel.OTA.build.debug_level=-DDEBUG_ESP_OTA +generic.menu.DebugLevel.OTA2=OTA + Updater +generic.menu.DebugLevel.OTA2.build.debug_level=-DDEBUG_ESP_OTA -DDEBUG_ESP_UPDATER generic.menu.DebugLevel.all=All -generic.menu.DebugLevel.all.build.debug_level=-DDEBUG_ESP_CORE -DDEBUG_ESP_SSL -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_UPDATER +generic.menu.DebugLevel.all.build.debug_level=-DDEBUG_ESP_CORE -DDEBUG_ESP_SSL -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP_CLIENT -DDEBUG_ESP_HTTP_UPDATE -DDEBUG_ESP_HTTP_SERVER -DDEBUG_ESP_UPDATER -DDEBUG_ESP_OTA # disabled because espressif's bootloader refuses to write above 4M # generic.menu.FlashSize.8M=8M (7M SPIFFS) diff --git a/libraries/ArduinoOTA/ArduinoOTA.cpp b/libraries/ArduinoOTA/ArduinoOTA.cpp index 52041b94d..386e230e8 100644 --- a/libraries/ArduinoOTA/ArduinoOTA.cpp +++ b/libraries/ArduinoOTA/ArduinoOTA.cpp @@ -18,7 +18,12 @@ extern "C" { #include "include/UdpContext.h" #include -//#define OTA_DEBUG 1 + +#ifdef DEBUG_ESP_OTA +#ifdef DEBUG_ESP_PORT +#define OTA_DEBUG DEBUG_ESP_PORT +#endif +#endif ArduinoOTAClass::ArduinoOTAClass() : _port(0) @@ -109,8 +114,8 @@ void ArduinoOTAClass::begin() { } _initialized = true; _state = OTA_IDLE; -#if OTA_DEBUG - Serial.printf("OTA server at: %s.local:%u\n", _hostname.c_str(), _port); +#ifdef OTA_DEBUG + OTA_DEBUG.printf("OTA server at: %s.local:%u\n", _hostname.c_str(), _port); #endif } @@ -226,8 +231,8 @@ void ArduinoOTAClass::_onRx(){ void ArduinoOTAClass::_runUpdate() { if (!Update.begin(_size, _cmd)) { -#if OTA_DEBUG - Serial.println("Update Begin Error"); +#ifdef OTA_DEBUG + OTA_DEBUG.println("Update Begin Error"); #endif if (_error_callback) { _error_callback(OTA_BEGIN_ERROR); @@ -249,8 +254,8 @@ void ArduinoOTAClass::_runUpdate() { WiFiClient client; if (!client.connect(_ota_ip, _ota_port)) { -#if OTA_DEBUG - Serial.printf("Connect Failed\n"); +#ifdef OTA_DEBUG + OTA_DEBUG.printf("Connect Failed\n"); #endif _udp_ota->listen(*IP_ADDR_ANY, _port); if (_error_callback) { @@ -265,8 +270,8 @@ void ArduinoOTAClass::_runUpdate() { while (!client.available() && waited--) delay(1); if (!waited){ -#if OTA_DEBUG - Serial.printf("Receive Failed\n"); +#ifdef OTA_DEBUG + OTA_DEBUG.printf("Receive Failed\n"); #endif _udp_ota->listen(*IP_ADDR_ANY, _port); if (_error_callback) { @@ -288,8 +293,8 @@ void ArduinoOTAClass::_runUpdate() { client.print("OK"); client.stop(); delay(10); -#if OTA_DEBUG - Serial.printf("Update Success\nRebooting...\n"); +#ifdef OTA_DEBUG + OTA_DEBUG.printf("Update Success\nRebooting...\n"); #endif if (_end_callback) { _end_callback(); @@ -301,8 +306,8 @@ void ArduinoOTAClass::_runUpdate() { _error_callback(OTA_END_ERROR); } Update.printError(client); -#if OTA_DEBUG - Update.printError(Serial); +#ifdef OTA_DEBUG + Update.printError(OTA_DEBUG); #endif _state = OTA_IDLE; } From dca03db4ecccff1c677ed188ba57deb1c004e785 Mon Sep 17 00:00:00 2001 From: Markus Sattler Date: Sat, 2 Jan 2016 19:30:03 +0100 Subject: [PATCH 6/6] add default value for all Boards --- boards.txt | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/boards.txt b/boards.txt index 9e80cefa9..9377b4f71 100644 --- a/boards.txt +++ b/boards.txt @@ -240,6 +240,8 @@ espduino.build.variant=espduino espduino.build.flash_mode=dio espduino.build.flash_size=4M espduino.build.flash_freq=40 +espduino.build.debug_port= +espduino.build.debug_level= espduino.menu.CpuFrequency.80=80 MHz espduino.menu.CpuFrequency.80.build.f_cpu=80000000L @@ -307,6 +309,8 @@ huzzah.build.variant=adafruit huzzah.build.flash_mode=qio huzzah.build.flash_size=4M huzzah.build.flash_freq=40 +huzzah.build.debug_port= +huzzah.build.debug_level= huzzah.menu.CpuFrequency.80=80 MHz huzzah.menu.CpuFrequency.80.build.f_cpu=80000000L @@ -364,6 +368,8 @@ nodemcu.build.variant=nodemcu nodemcu.build.flash_mode=qio nodemcu.build.flash_size=4M nodemcu.build.flash_freq=40 +nodemcu.build.debug_port= +nodemcu.build.debug_level= nodemcu.menu.CpuFrequency.80=80 MHz nodemcu.menu.CpuFrequency.80.build.f_cpu=80000000L @@ -430,6 +436,8 @@ nodemcuv2.build.variant=nodemcu nodemcuv2.build.flash_mode=dio nodemcuv2.build.flash_size=4M nodemcuv2.build.flash_freq=40 +nodemcuv2.build.debug_port= +nodemcuv2.build.debug_level= nodemcuv2.menu.CpuFrequency.80=80 MHz nodemcuv2.menu.CpuFrequency.80.build.f_cpu=80000000L @@ -505,6 +513,8 @@ modwifi.build.spiffs_start=0x100000 modwifi.build.spiffs_end=0x1FB000 modwifi.build.spiffs_pagesize=256 modwifi.build.spiffs_blocksize=8192 +modwifi.build.debug_port= +modwifi.build.debug_level= modwifi.menu.CpuFrequency.80=80 MHz modwifi.menu.CpuFrequency.80.build.f_cpu=80000000L @@ -561,6 +571,8 @@ thing.build.spiffs_start=0x6B000 thing.build.spiffs_end=0x7B000 thing.build.spiffs_blocksize=4096 thing.build.spiffs_pagesize=256 +thing.build.debug_port= +thing.build.debug_level= thing.menu.CpuFrequency.80=80 MHz thing.menu.CpuFrequency.80.build.f_cpu=80000000L @@ -610,6 +622,8 @@ esp210.build.variant=generic esp210.build.flash_mode=qio esp210.build.flash_size=4M esp210.build.flash_freq=40 +esp210.build.debug_port= +esp210.build.debug_level= esp210.menu.CpuFrequency.80=80 MHz esp210.menu.CpuFrequency.80.build.f_cpu=80000000L @@ -703,6 +717,8 @@ d1_mini.build.variant=d1_mini d1_mini.build.flash_mode=dio d1_mini.build.flash_size=4M d1_mini.build.flash_freq=40 +d1_mini.build.debug_port= +d1_mini.build.debug_level= d1_mini.menu.CpuFrequency.80=80 MHz d1_mini.menu.CpuFrequency.80.build.f_cpu=80000000L @@ -774,6 +790,8 @@ d1.build.variant=d1 d1.build.flash_mode=dio d1.build.flash_size=4M d1.build.flash_freq=40 +d1.build.debug_port= +d1.build.debug_level= d1.menu.CpuFrequency.80=80 MHz d1.menu.CpuFrequency.80.build.f_cpu=80000000L @@ -847,6 +865,8 @@ espino.build.flash_mode=qio espino.build.flash_size=4M espino.build.flash_freq=40 espino.build.spiffs_pagesize=256 +espino.build.debug_port= +espino.build.debug_level= espino.menu.UploadTool.esptool=Serial espino.menu.UploadTool.esptool.upload.tool=esptool @@ -924,6 +944,8 @@ wifinfo.build.variant=wifinfo wifinfo.build.flash_mode=qio wifinfo.build.board=ESP8266_ESP12 wifinfo.build.spiffs_pagesize=256 +wifinfo.build.debug_port= +wifinfo.build.debug_level= #wifinfo.menu.ESPModule.ESP07512=ESP07 (1M/512K SPIFFS) #wifinfo.menu.ESPModule.ESP07512.build.board=ESP8266_ESP07