diff --git a/cores/esp32/Arduino.h b/cores/esp32/Arduino.h index 9048249a873..b3a1be98cb6 100644 --- a/cores/esp32/Arduino.h +++ b/cores/esp32/Arduino.h @@ -228,6 +228,12 @@ bool shouldPrintChipDebugReport(void); return true; \ } +uint64_t getArduinoSetupWaitTick(void); +#define SET_SETUP_WAIT_TICK(tick) \ + uint64_t getArduinoSetupWaitTick() { \ + return tick; \ + } + // allows user to bypass esp_spiram_test() bool esp_psram_extram_test(void); #define BYPASS_SPIRAM_TEST(bypass) \ diff --git a/cores/esp32/main.cpp b/cores/esp32/main.cpp index 6c4d50a9a84..9247a4dcb16 100644 --- a/cores/esp32/main.cpp +++ b/cores/esp32/main.cpp @@ -44,10 +44,15 @@ __attribute__((weak)) bool shouldPrintChipDebugReport(void) { return false; } +__attribute__((weak)) uint64_t getArduinoSetupWaitTick(void) { + return 0; +} + void loopTask(void *pvParameters) { #if !defined(NO_GLOBAL_INSTANCES) && !defined(NO_GLOBAL_SERIAL) // sets UART0 (default console) RX/TX pins as already configured in boot or as defined in variants/pins_arduino.h Serial0.setPins(gpioNumberToDigitalPin(SOC_RX0), gpioNumberToDigitalPin(SOC_TX0)); + vTaskDelay(getArduinoSetupWaitTick()); #endif #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_DEBUG printBeforeSetupInfo();