S3: don't wait for serial to initialize
... allows to start effects a bit aerlier. Enabled by default on -S3. for your own builds, add `-DWLEDMM_NO_SERIAL_WAIT` to build_flags.
This commit is contained in:
@@ -500,6 +500,7 @@ build_flags = -g
|
|||||||
-DARDUINO_ARCH_ESP32S3
|
-DARDUINO_ARCH_ESP32S3
|
||||||
-DCONFIG_IDF_TARGET_ESP32S3=1
|
-DCONFIG_IDF_TARGET_ESP32S3=1
|
||||||
-DCONFIG_LITTLEFS_FOR_IDF_3_2 -DLFS_THREADSAFE ;; WLEDMM
|
-DCONFIG_LITTLEFS_FOR_IDF_3_2 -DLFS_THREADSAFE ;; WLEDMM
|
||||||
|
-DWLEDMM_NO_SERIAL_WAIT ;; WLEDMM don't wait for serial on -S3 (unless WLED_DEBUG is set)
|
||||||
-D CONFIG_ASYNC_TCP_USE_WDT=0
|
-D CONFIG_ASYNC_TCP_USE_WDT=0
|
||||||
-D CONFIG_ASYNC_TCP_TASK_STACK_SIZE=9472 ;; WLEDMM increase stack by 1.25Kb, as audioreactive needs bigger SETTINGS_STACK_BUF_SIZE
|
-D CONFIG_ASYNC_TCP_TASK_STACK_SIZE=9472 ;; WLEDMM increase stack by 1.25Kb, as audioreactive needs bigger SETTINGS_STACK_BUF_SIZE
|
||||||
-DARDUINO_USB_MSC_ON_BOOT=0 -DARDUINO_DFU_ON_BOOT=0
|
-DARDUINO_USB_MSC_ON_BOOT=0 -DARDUINO_DFU_ON_BOOT=0
|
||||||
|
|||||||
@@ -452,17 +452,23 @@ void WLED::setup()
|
|||||||
delay(WLED_BOOTUPDELAY); // delay to let voltage stabilize, helps with boot issues on some setups
|
delay(WLED_BOOTUPDELAY); // delay to let voltage stabilize, helps with boot issues on some setups
|
||||||
#endif
|
#endif
|
||||||
Serial.begin(115200);
|
Serial.begin(115200);
|
||||||
|
|
||||||
|
#if !defined(WLEDMM_NO_SERIAL_WAIT) || defined(WLED_DEBUG)
|
||||||
if (!Serial) delay(1000); // WLEDMM make sure that Serial has initalized
|
if (!Serial) delay(1000); // WLEDMM make sure that Serial has initalized
|
||||||
|
#else
|
||||||
|
if (!Serial) delay(300); // just a tiny wait to avoid problems later when acessing serial
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef ARDUINO_ARCH_ESP32
|
#ifdef ARDUINO_ARCH_ESP32
|
||||||
#if defined(WLED_DEBUG) && (defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32C3) || ARDUINO_USB_CDC_ON_BOOT)
|
#if defined(WLED_DEBUG) && (defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32C3) || ARDUINO_USB_CDC_ON_BOOT)
|
||||||
if (!Serial) delay(2500); // WLEDMM allow CDC USB serial to initialise
|
if (!Serial) delay(2500); // WLEDMM allow CDC USB serial to initialise (WLED_DEBUG only)
|
||||||
#endif
|
#endif
|
||||||
#if ARDUINO_USB_CDC_ON_BOOT || ARDUINO_USB_MODE
|
#if ARDUINO_USB_CDC_ON_BOOT || ARDUINO_USB_MODE
|
||||||
#if ARDUINO_USB_CDC_ON_BOOT && (defined(CONFIG_IDF_TARGET_ESP32S3) || defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32C6))
|
#if ARDUINO_USB_CDC_ON_BOOT && (defined(CONFIG_IDF_TARGET_ESP32S3) || defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32C6))
|
||||||
// WLEDMM avoid "hung devices" when USB_CDC is enabled; see https://github.com/espressif/arduino-esp32/issues/9043
|
// WLEDMM avoid "hung devices" when USB_CDC is enabled; see https://github.com/espressif/arduino-esp32/issues/9043
|
||||||
Serial.setTxTimeoutMs(0); // potential side-effect: incomplete debug output, with missing characters whenever TX buffer is full.
|
Serial.setTxTimeoutMs(0); // potential side-effect: incomplete debug output, with missing characters whenever TX buffer is full.
|
||||||
#endif
|
#endif
|
||||||
|
#if !defined(WLEDMM_NO_SERIAL_WAIT) || defined(WLED_DEBUG)
|
||||||
if (!Serial) delay(2500); // WLEDMM: always allow CDC USB serial to initialise
|
if (!Serial) delay(2500); // WLEDMM: always allow CDC USB serial to initialise
|
||||||
if (Serial) Serial.println("wait 1"); // waiting a bit longer ensures that a debug messages are shown in serial monitor
|
if (Serial) Serial.println("wait 1"); // waiting a bit longer ensures that a debug messages are shown in serial monitor
|
||||||
if (!Serial) delay(2500);
|
if (!Serial) delay(2500);
|
||||||
@@ -470,6 +476,8 @@ void WLED::setup()
|
|||||||
if (!Serial) delay(2500);
|
if (!Serial) delay(2500);
|
||||||
|
|
||||||
if (Serial) Serial.flush(); // WLEDMM
|
if (Serial) Serial.flush(); // WLEDMM
|
||||||
|
#endif
|
||||||
|
|
||||||
//Serial.setTimeout(350); // WLEDMM: don't change timeout, as it causes crashes later
|
//Serial.setTimeout(350); // WLEDMM: don't change timeout, as it causes crashes later
|
||||||
// WLEDMM: redirect debug output to HWCDC
|
// WLEDMM: redirect debug output to HWCDC
|
||||||
#if ARDUINO_USB_CDC_ON_BOOT && (defined(WLED_DEBUG) || defined(SR_DEBUG))
|
#if ARDUINO_USB_CDC_ON_BOOT && (defined(WLED_DEBUG) || defined(SR_DEBUG))
|
||||||
@@ -521,6 +529,7 @@ void WLED::setup()
|
|||||||
USER_PRINT(F(", ")); USER_PRINT(ESP.getCpuFreqMHz()); USER_PRINTLN(F("MHz."));
|
USER_PRINT(F(", ")); USER_PRINT(ESP.getCpuFreqMHz()); USER_PRINTLN(F("MHz."));
|
||||||
|
|
||||||
// WLEDMM begin
|
// WLEDMM begin
|
||||||
|
delay(20); USER_FLUSH(); // drain serial output buffers
|
||||||
USER_PRINT(F("CPU "));
|
USER_PRINT(F("CPU "));
|
||||||
esp_reset_reason_t resetReason = getRestartReason();
|
esp_reset_reason_t resetReason = getRestartReason();
|
||||||
USER_PRINT(restartCode2InfoLong(resetReason));
|
USER_PRINT(restartCode2InfoLong(resetReason));
|
||||||
|
|||||||
Reference in New Issue
Block a user