Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Random error wdt timeout (IDFGH-9042) #10448

Closed
3 tasks done
cosmoiler opened this issue Dec 28, 2022 · 11 comments
Closed
3 tasks done

Random error wdt timeout (IDFGH-9042) #10448

cosmoiler opened this issue Dec 28, 2022 · 11 comments
Assignees
Labels
Awaiting Response awaiting a response from the author Resolution: NA Issue resolution is unavailable Status: Done Issue is done internally Type: Bug bugs in IDF

Comments

@cosmoiler
Copy link

Answers checklist.

  • I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
  • I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
  • I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.

v4.4.3

Operating System used.

Windows

How did you build your project?

Command line with idf.py

If you are using Windows, please specify command line type.

CMD

Development Kit.

Custom Board

Power Supply used.

USB

What is the expected behavior?

Code execution without failures

What is the actual behavior?

The program periodically crashes with the wdt timeout error in a random place in the code. The code contains several FreeRTOS tasks. Very rarely there are no failures.

Steps to reproduce.

The error manifests itself during the execution of FreeRTOS tasks, and in a random place, but after starting a certain task.

Code for debug log #2:

bool DRVLed::run() { Task::wait(); if (m_ptrState) m_ptrState->handle(); return true; }

frt::Task<DRVLed, 2048u>::wait() :

void wait() { ulTaskNotifyTake(pdTRUE, portMAX_DELAY); }

Debug Logs.

Guru Meditation Error: Core  0 panic'ed (Interrupt wdt timeout on CPU0). 

Core  0 register dump:
PC      : 0x4008dfe8  PS      : 0x00060034  A0      : 0x8008c482  A1      : 0x3ffafb80
0x4008dfe8: vListInsert at C:/Esp/esp-idf/components/freertos/list.c:166 (discriminator 1)

A2      : 0x3ffaf674  A3      : 0x3ffafcd0  A4      : 0x00000013  A5      : 0x00060023
A6      : 0x3ffb1408  A7      : 0x00000011  A8      : 0x3ffafcd0  A9      : 0x3ffafcd0
A10     : 0x00000001  A11     : 0x00000001  A12     : 0x00000001  A13     : 0x00060023
A14     : 0x00000003  A15     : 0x00060023  SAR     : 0x00000004  EXCCAUSE: 0x00000005
EXCVADDR: 0x00000000  LBEG    : 0x00000000  LEND    : 0x00000000  LCOUNT  : 0x00000000


Backtrace: 0x4008dfe5:0x3ffafb80 0x4008c47f:0x3ffafba0 0x4008b4de:0x3ffafbc0 0x4008345f:0x3ffafc00 0x4008e061:0x3ffafc20
0x4008dfe5: vListInsert at C:/Esp/esp-idf/components/freertos/list.c:166 (discriminator 1)

0x4008c47f: vTaskPlaceOnEventList at C:/Esp/esp-idf/components/freertos/tasks.c:3566

0x4008b4de: xQueueSemaphoreTake at C:/Esp/esp-idf/components/freertos/queue.c:1688

0x4008345f: ipc_task at C:/Esp/esp-idf/components/esp_ipc/src/esp_ipc.c:54

0x4008e061: vPortTaskWrapper at C:/Esp/esp-idf/components/freertos/port/xtensa/port.c:131

Core  1 register dump:
PC      : 0x4008e1c4  PS      : 0x00060034  A0      : 0x8008c2d8  A1      : 0x3ffc6770
0x4008e1c4: compare_and_set_native at C:/Esp/esp-idf/components/esp_hw_support/include/soc/compare_set.h:25
 (inlined by) spinlock_acquire at C:/Esp/esp-idf/components/esp_hw_support/include/soc/spinlock.h:103
 (inlined by) xPortEnterCriticalTimeout at C:/Esp/esp-idf/components/freertos/port/xtensa/port.c:288

A2      : 0x3ffb11c8  A3      : 0xffffffff  A4      : 0x8008a875  A5      : 0x3ffb1130  
A6      : 0x00000000  A7      : 0x3ffc6840  A8      : 0x0000cdcd  A9      : 0x0000abab
A10     : 0x00060023  A11     : 0x0000cdcd  A12     : 0xb33fffff  A13     : 0x00060023
A14     : 0x3ffb11b8  A15     : 0x00000001  SAR     : 0x00000000  EXCCAUSE: 0x00000005
EXCVADDR: 0x00000000  LBEG    : 0x00000000  LEND    : 0x00000000  LCOUNT  : 0x00000000


Backtrace: 0x4008e1c1:0x3ffc6770 0x4008c2d5:0x3ffc6790 0x4008a5e0:0x3ffc67b0 0x4008a592:0x00000003 |<-CORRUPTED
0x4008e1c1: cpu_ll_get_cycle_count at C:/Esp/esp-idf/components/hal/esp32/include/hal/cpu_ll.h:45
 (inlined by) spinlock_acquire at C:/Esp/esp-idf/components/esp_hw_support/include/soc/spinlock.h:113
 (inlined by) xPortEnterCriticalTimeout at C:/Esp/esp-idf/components/freertos/port/xtensa/port.c:288

0x4008c2d5: vPortEnterCritical at C:/Esp/esp-idf/components/freertos/port/xtensa/include/freertos/portmacro.h:578
 (inlined by) vTaskSwitchContext at C:/Esp/esp-idf/components/freertos/tasks.c:3458

0x4008a5e0: _frxt_dispatch at C:/Esp/esp-idf/components/freertos/port/xtensa/portasm.S:436

0x4008a592: _frxt_int_exit at C:/Esp/esp-idf/components/freertos/port/xtensa/portasm.S:231


----------------------------------------------------------------------------------------------


#2:
Guru Meditation Error: Core  0 panic'ed (Interrupt wdt timeout on CPU0). 

Core  0 register dump:
PC      : 0x4008dfe2  PS      : 0x00060a34  A0      : 0x8008c482  A1      : 0x3ffafb80
0x4008dfe2: vListInsert at C:/Esp/esp-idf/components/freertos/list.c:166

A2      : 0x3ffaf674  A3      : 0x3ffafcd0  A4      : 0x00000011  A5      : 0x00060a23
A6      : 0x3ffc36e0  A7      : 0x00000000  A8      : 0x3ffafcd0  A9      : 0x3ffafcd0
A10     : 0x00000001  A11     : 0x00000001  A12     : 0x00000001  A13     : 0x00060a23
A14     : 0x00000003  A15     : 0x00060023  SAR     : 0x00000004  EXCCAUSE: 0x00000005  
EXCVADDR: 0x00000000  LBEG    : 0x00000000  LEND    : 0x00000000  LCOUNT  : 0x00000000


Backtrace: 0x4008dfdf:0x3ffafb80 0x4008c47f:0x3ffafba0 0x4008b4de:0x3ffafbc0 0x4008345f:0x3ffafc00 0x4008e061:0x3ffafc20
0x4008dfdf: vListInsert at C:/Esp/esp-idf/components/freertos/list.c:166

0x4008c47f: vTaskPlaceOnEventList at C:/Esp/esp-idf/components/freertos/tasks.c:3566

0x4008b4de: xQueueSemaphoreTake at C:/Esp/esp-idf/components/freertos/queue.c:1688

0x4008345f: ipc_task at C:/Esp/esp-idf/components/esp_ipc/src/esp_ipc.c:54

0x4008e061: vPortTaskWrapper at C:/Esp/esp-idf/components/freertos/port/xtensa/port.c:131



Core  1 register dump:
PC      : 0x4008e1c9  PS      : 0x00060534  A0      : 0x8008d2ee  A1      : 0x3ffb9960
0x4008e1c9: compare_and_set_native at C:/Esp/esp-idf/components/esp_hw_support/include/soc/compare_set.h:25
 (inlined by) spinlock_acquire at C:/Esp/esp-idf/components/esp_hw_support/include/soc/spinlock.h:103
 (inlined by) xPortEnterCriticalTimeout at C:/Esp/esp-idf/components/freertos/port/xtensa/port.c:288

A2      : 0x3ffb11c8  A3      : 0xffffffff  A4      : 0x0022dd97  A5      : 0x00000001
A6      : 0x3ffb4180  A7      : 0x00000000  A8      : 0x0000abab  A9      : 0x0000abab  
A10     : 0x00060520  A11     : 0x0000cdcd  A12     : 0xb33fffff  A13     : 0x00060523
A14     : 0x3ffb4178  A15     : 0x3ffb3ca0  SAR     : 0x00000000  EXCCAUSE: 0x00000005
EXCVADDR: 0x00000000  LBEG    : 0x00000000  LEND    : 0x00000000  LCOUNT  : 0x00000000


Backtrace: 0x4008e1c6:0x3ffb9960 0x4008d2eb:0x3ffb9980 0x400e72a6:0x3ffb99a0 0x400d807b:0x3ffb99c0 0x4008e061:0x3ffb99e0
0x4008e1c6: compare_and_set_native at C:/Esp/esp-idf/components/esp_hw_support/include/soc/compare_set.h:25
 (inlined by) spinlock_acquire at C:/Esp/esp-idf/components/esp_hw_support/include/soc/spinlock.h:103
 (inlined by) xPortEnterCriticalTimeout at C:/Esp/esp-idf/components/freertos/port/xtensa/port.c:288

0x4008d2eb: vPortEnterCritical at C:/Esp/esp-idf/components/freertos/port/xtensa/include/freertos/portmacro.h:578
 (inlined by) ulTaskGenericNotifyTake at C:/Esp/esp-idf/components/freertos/tasks.c:5372

0x400e72a6: frt::Task<DRVLed, 2048u>::wait() at C:/Users/Cosmoiler/Documents/Prog/Firmware/ESP32/workspace/cosmoiler-idf/main/Lib/Frt/src/frt.hpp:186
 (inlined by) DRVLed::run() at C:/Users/Cosmoiler/Documents/Prog/Firmware/ESP32/workspace/cosmoiler-idf/main/Drivers/Led/src/tskFlasher.cpp:192

0x400d807b: frt::Task<DRVLed, 2048u>::entryPoint(void*) at C:/Users/Cosmoiler/Documents/Prog/Firmware/ESP32/workspace/cosmoiler-idf/main/Lib/Frt/src/frt.hpp:255 (discriminator 1)

0x4008e061: vPortTaskWrapper at C:/Esp/esp-idf/components/freertos/port/xtensa/port.c:131

More Information.

No response

@cosmoiler cosmoiler added the Type: Bug bugs in IDF label Dec 28, 2022
@espressif-bot espressif-bot added the Status: Opened Issue is new label Dec 28, 2022
@github-actions github-actions bot changed the title Random error wdt timeout Random error wdt timeout (IDFGH-9042) Dec 28, 2022
@0xjakob
Copy link
Contributor

0xjakob commented Dec 28, 2022

@cosmoiler Thanks for the issue report. However, I'm afraid the information is not enough to sufficiently analyze the problem. Hence, we have a few more questions:

Do you have a minimal reproducing code example? What is the configuration you are using (sdkconfig)? Could you enable stack overflow protection in menuconfig, in particular the watchpoint (CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK) and then try again?

@espressif-bot espressif-bot added the Awaiting Response awaiting a response from the author label Dec 28, 2022
@cosmoiler
Copy link
Author

cosmoiler commented Dec 28, 2022

Changed CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK to "y" - the crashes did not stop. Periodic error in a random place of the code.

Previously, the code worked (on esp-idf version 4.3). There were no global architecture changes except for the addition of an intermediary (class Mediator). There were no changes in the code regarding working with FreeRTOS. Now sometimes the code also works fine, but more often it crashes.

sdkconfig
#
# Automatically generated file. DO NOT EDIT.
# Espressif IoT Development Framework (ESP-IDF) Project Configuration
#
CONFIG_IDF_CMAKE=y
CONFIG_IDF_TARGET_ARCH_XTENSA=y
CONFIG_IDF_TARGET="esp32"
CONFIG_IDF_TARGET_ESP32=y
CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000

#
# SDK tool configuration
#
CONFIG_SDK_TOOLPREFIX="xtensa-esp32-elf-"
# CONFIG_SDK_TOOLCHAIN_SUPPORTS_TIME_WIDE_64_BITS is not set
# end of SDK tool configuration

#
# Build type
#
CONFIG_APP_BUILD_TYPE_APP_2NDBOOT=y
# CONFIG_APP_BUILD_TYPE_ELF_RAM is not set
CONFIG_APP_BUILD_GENERATE_BINARIES=y
CONFIG_APP_BUILD_BOOTLOADER=y
CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y
# end of Build type

#
# Application manager
#
CONFIG_APP_COMPILE_TIME_DATE=y
# CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set
# CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set
# CONFIG_APP_PROJECT_VER_FROM_CONFIG is not set
CONFIG_APP_RETRIEVE_LEN_ELF_SHA=16
# end of Application manager

#
# Bootloader config
#
CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x1000
CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y
# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set
# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set
# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE is not set
# CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set
# CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set
# CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set
CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y
# CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG is not set
# CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set
CONFIG_BOOTLOADER_LOG_LEVEL=3
# CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_8V is not set
CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_9V=y
# CONFIG_BOOTLOADER_FACTORY_RESET is not set
# CONFIG_BOOTLOADER_APP_TEST is not set
CONFIG_BOOTLOADER_REGION_PROTECTION_ENABLE=y
CONFIG_BOOTLOADER_WDT_ENABLE=y
# CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set
CONFIG_BOOTLOADER_WDT_TIME_MS=9000
CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE=y
# CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK is not set
# CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set
# CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON is not set
# CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS is not set
CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0
# CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set
CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT=y
# end of Bootloader config

#
# Security features
#
# CONFIG_SECURE_SIGNED_APPS_NO_SECURE_BOOT is not set
# CONFIG_SECURE_BOOT is not set
# CONFIG_SECURE_FLASH_ENC_ENABLED is not set
# end of Security features

#
# Serial flasher config
#
CONFIG_ESPTOOLPY_BAUD_OTHER_VAL=115200
# CONFIG_ESPTOOLPY_NO_STUB is not set
# CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set
# CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set
CONFIG_ESPTOOLPY_FLASHMODE_DIO=y
# CONFIG_ESPTOOLPY_FLASHMODE_DOUT is not set
CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_STR=y
CONFIG_ESPTOOLPY_FLASHMODE="dio"
# CONFIG_ESPTOOLPY_FLASHFREQ_80M is not set
CONFIG_ESPTOOLPY_FLASHFREQ_40M=y
# CONFIG_ESPTOOLPY_FLASHFREQ_26M is not set
# CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set
CONFIG_ESPTOOLPY_FLASHFREQ="40m"
# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set
# CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set
# CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set
# CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set
# CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set
# CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set
CONFIG_ESPTOOLPY_FLASHSIZE="4MB"
CONFIG_ESPTOOLPY_FLASHSIZE_DETECT=y
CONFIG_ESPTOOLPY_BEFORE_RESET=y
# CONFIG_ESPTOOLPY_BEFORE_NORESET is not set
CONFIG_ESPTOOLPY_BEFORE="default_reset"
CONFIG_ESPTOOLPY_AFTER_RESET=y
# CONFIG_ESPTOOLPY_AFTER_NORESET is not set
CONFIG_ESPTOOLPY_AFTER="hard_reset"
# CONFIG_ESPTOOLPY_MONITOR_BAUD_CONSOLE is not set
# CONFIG_ESPTOOLPY_MONITOR_BAUD_9600B is not set
# CONFIG_ESPTOOLPY_MONITOR_BAUD_57600B is not set
CONFIG_ESPTOOLPY_MONITOR_BAUD_115200B=y
# CONFIG_ESPTOOLPY_MONITOR_BAUD_230400B is not set
# CONFIG_ESPTOOLPY_MONITOR_BAUD_921600B is not set
# CONFIG_ESPTOOLPY_MONITOR_BAUD_2MB is not set
# CONFIG_ESPTOOLPY_MONITOR_BAUD_OTHER is not set
CONFIG_ESPTOOLPY_MONITOR_BAUD_OTHER_VAL=115200
CONFIG_ESPTOOLPY_MONITOR_BAUD=115200
# end of Serial flasher config

#
# Partition Table
#
# CONFIG_PARTITION_TABLE_SINGLE_APP is not set
# CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE is not set
# CONFIG_PARTITION_TABLE_TWO_OTA is not set
CONFIG_PARTITION_TABLE_CUSTOM=y
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="cosmoiler_HW12_4MB.csv"
CONFIG_PARTITION_TABLE_FILENAME="cosmoiler_HW12_4MB.csv"
CONFIG_PARTITION_TABLE_OFFSET=0xa000
CONFIG_PARTITION_TABLE_MD5=y
# end of Partition Table

#
# Cosmoiler Configuration
#
CONFIG_COSMOILER_VERSION_MAJOR=6
CONFIG_COSMOILER_VERSION_MINOR=0
CONFIG_COSMOILER_VERSION_FRONTEND=49
CONFIG_COSMOILER_HWREV=12
# CONFIG_COSMOILER_PUMP_A is not set
# CONFIG_COSMOILER_PUMP_B is not set
CONFIG_COSMOILER_PUMP_C=y
CONFIG_COSMOILER_HWSTR="C"
# CONFIG_COSMOILER_CHECKID is not set
CONFIG_COSMOILER_START_PUMP=5

#
# GPS
#
CONFIG_COSMOILER_GPS_L96=y
# CONFIG_COSMOILER_GPS_L86 is not set
CONFIG_COSMOILER_GPS_ODOMETER=y
CONFIG_COSMOILER_MAX_HDOP=600
CONFIG_COSMOILER_TIME_SEARCH_SAT=300
# end of GPS

#
# ADC
#
CONFIG_COSMOILER_WIDTH_BIT_12=y
CONFIG_COSMOILER_ADC_WIDTH_BIT=3
CONFIG_COSMOILER_ATTEN_DB_11=y
# CONFIG_COSMOILER_ATTEN_DB_0 is not set
CONFIG_COSMOILER_ADC_ATTEN_DB=3
CONFIG_COSMOILER_ADC_DEFAULT_VREF=1100
CONFIG_COSMOILER_ADC_MAX_V=3300
CONFIG_COSMOILER_ADC_RES=4095
CONFIG_COSMOILER_R1=49900
CONFIG_COSMOILER_R2=10000
CONFIG_COSMOILER_MIN_THRESHOLD_V=13100
CONFIG_COSMOILER_MAX_THRESHOLD_V=13400
# end of ADC

#
# Speed
#
CONFIG_COSMOILER_SPEED_MIN=20
CONFIG_COSMOILER_SPEED_MAX=150
# end of Speed

#
# WiFi
#
CONFIG_COSMOILER_WIFI_TIMEOUT_ms=60000
# end of WiFi

#
# Telemetry
#
CONFIG_COSMOILER_PERIOD_CALC_SPEED=500
CONFIG_COSMOILER_PERIOD_CALC_DIST=1000
CONFIG_COSMOILER_MIN_PRECISION_DISTANCE=10
CONFIG_COSMOILER_MIN_PRECISION_SPEED=10
# end of Telemetry

#
# Button
#
CONFIG_COSMOILER_DEBOUNCE_TICKS=50
CONFIG_COSMOILER_CLICK_TICKS=400
CONFIG_COSMOILER_PRESS_TICKS=800
CONFIG_COSMOILER_BUTTON_WAIT_DBLCLICK=2000
CONFIG_COSMOILER_BUTTON_WAIT_LONG=5000
# end of Button

#
# Sleep
#
CONFIG_COSMOILER_TIME_GO_DEEPSLEEP_MS=60000
CONFIG_COSMOILER_ULP_WAKEUP_INTERVAL_MS=5000
# end of Sleep
# end of Cosmoiler Configuration

#
# Arduino Configuration
#
CONFIG_ARDUINO_VARIANT="esp32"
CONFIG_ENABLE_ARDUINO_DEPENDS=y
# CONFIG_AUTOSTART_ARDUINO is not set
# CONFIG_ARDUINO_RUN_CORE0 is not set
CONFIG_ARDUINO_RUN_CORE1=y
# CONFIG_ARDUINO_RUN_NO_AFFINITY is not set
CONFIG_ARDUINO_RUNNING_CORE=1
CONFIG_ARDUINO_LOOP_STACK_SIZE=4096
# CONFIG_ARDUINO_EVENT_RUN_CORE0 is not set
CONFIG_ARDUINO_EVENT_RUN_CORE1=y
# CONFIG_ARDUINO_EVENT_RUN_NO_AFFINITY is not set
CONFIG_ARDUINO_EVENT_RUNNING_CORE=1
# CONFIG_ARDUINO_SERIAL_EVENT_RUN_CORE0 is not set
# CONFIG_ARDUINO_SERIAL_EVENT_RUN_CORE1 is not set
CONFIG_ARDUINO_SERIAL_EVENT_RUN_NO_AFFINITY=y
CONFIG_ARDUINO_SERIAL_EVENT_TASK_RUNNING_CORE=-1
CONFIG_ARDUINO_SERIAL_EVENT_TASK_STACK_SIZE=2048
CONFIG_ARDUINO_SERIAL_EVENT_TASK_PRIORITY=24
CONFIG_ARDUINO_UDP_RUN_CORE0=y
# CONFIG_ARDUINO_UDP_RUN_CORE1 is not set
# CONFIG_ARDUINO_UDP_RUN_NO_AFFINITY is not set
CONFIG_ARDUINO_UDP_RUNNING_CORE=0
CONFIG_ARDUINO_UDP_TASK_PRIORITY=3
# CONFIG_ARDUINO_ISR_IRAM is not set
# CONFIG_DISABLE_HAL_LOCKS is not set

#
# Debug Log Configuration
#
# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_NONE is not set
# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_ERROR is not set
# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_WARN is not set
CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_INFO=y
# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_DEBUG is not set
# CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_VERBOSE is not set
CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL=3
CONFIG_ARDUHAL_LOG_COLORS=y
# CONFIG_ARDUHAL_ESP_LOG is not set
# end of Debug Log Configuration

CONFIG_ARDUHAL_PARTITION_SCHEME_DEFAULT=y
# CONFIG_ARDUHAL_PARTITION_SCHEME_MINIMAL is not set
# CONFIG_ARDUHAL_PARTITION_SCHEME_NO_OTA is not set
# CONFIG_ARDUHAL_PARTITION_SCHEME_HUGE_APP is not set
# CONFIG_ARDUHAL_PARTITION_SCHEME_MIN_SPIFFS is not set
CONFIG_ARDUHAL_PARTITION_SCHEME="default"
CONFIG_ARDUINO_SELECTIVE_COMPILATION=y
CONFIG_ARDUINO_SELECTIVE_ArduinoOTA=y
CONFIG_ARDUINO_SELECTIVE_AsyncUDP=y
# CONFIG_ARDUINO_SELECTIVE_AzureIoT is not set
# CONFIG_ARDUINO_SELECTIVE_BLE is not set
# CONFIG_ARDUINO_SELECTIVE_BluetoothSerial is not set
# CONFIG_ARDUINO_SELECTIVE_DNSServer is not set
# CONFIG_ARDUINO_SELECTIVE_EEPROM is not set
CONFIG_ARDUINO_SELECTIVE_ESP32=y
CONFIG_ARDUINO_SELECTIVE_ESPmDNS=y
# CONFIG_ARDUINO_SELECTIVE_FFat is not set
CONFIG_ARDUINO_SELECTIVE_FS=y
# CONFIG_ARDUINO_SELECTIVE_HTTPClient is not set
CONFIG_ARDUINO_SELECTIVE_LITTLEFS=y
# CONFIG_ARDUINO_SELECTIVE_NetBIOS is not set
# CONFIG_ARDUINO_SELECTIVE_Preferences is not set
# CONFIG_ARDUINO_SELECTIVE_SD is not set
# CONFIG_ARDUINO_SELECTIVE_SD_MMC is not set
# CONFIG_ARDUINO_SELECTIVE_SimpleBLE is not set
# CONFIG_ARDUINO_SELECTIVE_SPI is not set
# CONFIG_ARDUINO_SELECTIVE_SPIFFS is not set
# CONFIG_ARDUINO_SELECTIVE_Ticker is not set
CONFIG_ARDUINO_SELECTIVE_Update=y
# CONFIG_ARDUINO_SELECTIVE_WebServer is not set
CONFIG_ARDUINO_SELECTIVE_WiFi=y
CONFIG_ARDUINO_SELECTIVE_WiFiClientSecure=y
CONFIG_ARDUINO_SELECTIVE_WiFiProv=y
# CONFIG_ARDUINO_SELECTIVE_Wire is not set
# end of Arduino Configuration

#
# AsyncTCP Configuration
#
# CONFIG_ASYNC_TCP_RUN_CORE0 is not set
CONFIG_ASYNC_TCP_RUN_CORE1=y
# CONFIG_ASYNC_TCP_RUN_NO_AFFINITY is not set
CONFIG_ASYNC_TCP_RUNNING_CORE=1
CONFIG_ASYNC_TCP_USE_WDT=y
# end of AsyncTCP Configuration

#
# Compiler options
#
CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y
# CONFIG_COMPILER_OPTIMIZATION_SIZE is not set
# CONFIG_COMPILER_OPTIMIZATION_PERF is not set
# CONFIG_COMPILER_OPTIMIZATION_NONE is not set
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y
# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set
# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set
CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2
# CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT is not set
CONFIG_COMPILER_HIDE_PATHS_MACROS=y
# CONFIG_COMPILER_CXX_EXCEPTIONS is not set
# CONFIG_COMPILER_CXX_RTTI is not set
CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y
# CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set
# CONFIG_COMPILER_STACK_CHECK_MODE_STRONG is not set
# CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set
# CONFIG_COMPILER_WARN_WRITE_STRINGS is not set
# CONFIG_COMPILER_DISABLE_GCC8_WARNINGS is not set
# CONFIG_COMPILER_DUMP_RTL_FILES is not set
# end of Compiler options

#
# Component config
#

#
# Application Level Tracing
#
# CONFIG_APPTRACE_DEST_JTAG is not set
CONFIG_APPTRACE_DEST_NONE=y
CONFIG_APPTRACE_LOCK_ENABLE=y
# end of Application Level Tracing

#
# ESP-ASIO
#
# CONFIG_ASIO_SSL_SUPPORT is not set
# end of ESP-ASIO

#
# Bluetooth
#
# CONFIG_BT_ENABLED is not set
# end of Bluetooth

#
# CoAP Configuration
#
CONFIG_COAP_MBEDTLS_PSK=y
# CONFIG_COAP_MBEDTLS_PKI is not set
# CONFIG_COAP_MBEDTLS_DEBUG is not set
CONFIG_COAP_LOG_DEFAULT_LEVEL=0
# end of CoAP Configuration

#
# Driver configurations
#

#
# ADC configuration
#
# CONFIG_ADC_FORCE_XPD_FSM is not set
CONFIG_ADC_DISABLE_DAC=y
# end of ADC configuration

#
# MCPWM configuration
#
# CONFIG_MCPWM_ISR_IN_IRAM is not set
# end of MCPWM configuration

#
# SPI configuration
#
# CONFIG_SPI_MASTER_IN_IRAM is not set
CONFIG_SPI_MASTER_ISR_IN_IRAM=y
# CONFIG_SPI_SLAVE_IN_IRAM is not set
CONFIG_SPI_SLAVE_ISR_IN_IRAM=y
# end of SPI configuration

#
# TWAI configuration
#
# CONFIG_TWAI_ISR_IN_IRAM is not set
# CONFIG_TWAI_ERRATA_FIX_BUS_OFF_REC is not set
# CONFIG_TWAI_ERRATA_FIX_TX_INTR_LOST is not set
# CONFIG_TWAI_ERRATA_FIX_RX_FRAME_INVALID is not set
# CONFIG_TWAI_ERRATA_FIX_RX_FIFO_CORRUPT is not set
# end of TWAI configuration

#
# UART configuration
#
# CONFIG_UART_ISR_IN_IRAM is not set
# end of UART configuration

#
# RTCIO configuration
#
# CONFIG_RTCIO_SUPPORT_RTC_GPIO_DESC is not set
# end of RTCIO configuration

#
# GPIO Configuration
#
# CONFIG_GPIO_ESP32_SUPPORT_SWITCH_SLP_PULL is not set
# end of GPIO Configuration

#
# GDMA Configuration
#
# CONFIG_GDMA_CTRL_FUNC_IN_IRAM is not set
# CONFIG_GDMA_ISR_IRAM_SAFE is not set
# end of GDMA Configuration
# end of Driver configurations

#
# eFuse Bit Manager
#
# CONFIG_EFUSE_CUSTOM_TABLE is not set
# CONFIG_EFUSE_VIRTUAL is not set
# CONFIG_EFUSE_CODE_SCHEME_COMPAT_NONE is not set
CONFIG_EFUSE_CODE_SCHEME_COMPAT_3_4=y
# CONFIG_EFUSE_CODE_SCHEME_COMPAT_REPEAT is not set
CONFIG_EFUSE_MAX_BLK_LEN=192
# end of eFuse Bit Manager

#
# ESP-TLS
#
CONFIG_ESP_TLS_USING_MBEDTLS=y
# CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set
# CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set
# CONFIG_ESP_TLS_SERVER is not set
CONFIG_ESP_TLS_PSK_VERIFICATION=y
# CONFIG_ESP_TLS_INSECURE is not set
# end of ESP-TLS

#
# ESP32-specific
#
CONFIG_ESP32_REV_MIN_0=y
# CONFIG_ESP32_REV_MIN_1 is not set
# CONFIG_ESP32_REV_MIN_2 is not set
# CONFIG_ESP32_REV_MIN_3 is not set
CONFIG_ESP32_REV_MIN=0
CONFIG_ESP32_DPORT_WORKAROUND=y
# CONFIG_ESP32_DEFAULT_CPU_FREQ_80 is not set
CONFIG_ESP32_DEFAULT_CPU_FREQ_160=y
# CONFIG_ESP32_DEFAULT_CPU_FREQ_240 is not set
CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=160
# CONFIG_ESP32_SPIRAM_SUPPORT is not set
# CONFIG_ESP32_TRAX is not set
CONFIG_ESP32_TRACEMEM_RESERVE_DRAM=0x0
CONFIG_ESP32_ULP_COPROC_ENABLED=y
CONFIG_ESP32_ULP_COPROC_RESERVE_MEM=1024
CONFIG_ESP32_DEBUG_OCDAWARE=y
CONFIG_ESP32_BROWNOUT_DET=y
CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_0=y
# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_1 is not set
# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_2 is not set
# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_3 is not set
# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_4 is not set
# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_5 is not set
# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_6 is not set
# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_7 is not set
CONFIG_ESP32_BROWNOUT_DET_LVL=0
CONFIG_ESP32_TIME_SYSCALL_USE_RTC_FRC1=y
# CONFIG_ESP32_TIME_SYSCALL_USE_RTC is not set
# CONFIG_ESP32_TIME_SYSCALL_USE_FRC1 is not set
# CONFIG_ESP32_TIME_SYSCALL_USE_NONE is not set
CONFIG_ESP32_RTC_CLK_SRC_INT_RC=y
# CONFIG_ESP32_RTC_CLK_SRC_EXT_CRYS is not set
# CONFIG_ESP32_RTC_CLK_SRC_EXT_OSC is not set
# CONFIG_ESP32_RTC_CLK_SRC_INT_8MD256 is not set
CONFIG_ESP32_RTC_CLK_CAL_CYCLES=1024
CONFIG_ESP32_DEEP_SLEEP_WAKEUP_DELAY=2000
CONFIG_ESP32_XTAL_FREQ_40=y
# CONFIG_ESP32_XTAL_FREQ_26 is not set
# CONFIG_ESP32_XTAL_FREQ_AUTO is not set
CONFIG_ESP32_XTAL_FREQ=40
# CONFIG_ESP32_DISABLE_BASIC_ROM_CONSOLE is not set
# CONFIG_ESP32_NO_BLOBS is not set
# CONFIG_ESP32_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set
# CONFIG_ESP32_COMPATIBLE_PRE_V3_1_BOOTLOADERS is not set
# CONFIG_ESP32_USE_FIXED_STATIC_RAM_SIZE is not set
CONFIG_ESP32_DPORT_DIS_INTERRUPT_LVL=5
# end of ESP32-specific

#
# ADC-Calibration
#
CONFIG_ADC_CAL_EFUSE_TP_ENABLE=y
CONFIG_ADC_CAL_EFUSE_VREF_ENABLE=y
CONFIG_ADC_CAL_LUT_ENABLE=y
# end of ADC-Calibration

#
# Common ESP-related
#
CONFIG_ESP_ERR_TO_NAME_LOOKUP=y
# end of Common ESP-related

#
# Ethernet
#
CONFIG_ETH_ENABLED=y
CONFIG_ETH_USE_ESP32_EMAC=y
CONFIG_ETH_PHY_INTERFACE_RMII=y
CONFIG_ETH_RMII_CLK_INPUT=y
# CONFIG_ETH_RMII_CLK_OUTPUT is not set
CONFIG_ETH_RMII_CLK_IN_GPIO=0
CONFIG_ETH_DMA_BUFFER_SIZE=512
CONFIG_ETH_DMA_RX_BUFFER_NUM=10
CONFIG_ETH_DMA_TX_BUFFER_NUM=10
CONFIG_ETH_USE_SPI_ETHERNET=y
# CONFIG_ETH_SPI_ETHERNET_DM9051 is not set
# CONFIG_ETH_SPI_ETHERNET_W5500 is not set
# CONFIG_ETH_SPI_ETHERNET_KSZ8851SNL is not set
# CONFIG_ETH_USE_OPENETH is not set
# end of Ethernet

#
# Event Loop Library
#
# CONFIG_ESP_EVENT_LOOP_PROFILING is not set
CONFIG_ESP_EVENT_POST_FROM_ISR=y
CONFIG_ESP_EVENT_POST_FROM_IRAM_ISR=y
# end of Event Loop Library

#
# GDB Stub
#
# end of GDB Stub

#
# ESP HTTP client
#
# CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS is not set
# CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set
CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH=y
# end of ESP HTTP client

#
# HTTP Server
#
CONFIG_HTTPD_MAX_REQ_HDR_LEN=512
CONFIG_HTTPD_MAX_URI_LEN=512
CONFIG_HTTPD_ERR_RESP_NO_DELAY=y
CONFIG_HTTPD_PURGE_BUF_LEN=32
# CONFIG_HTTPD_LOG_PURGE_DATA is not set
# CONFIG_HTTPD_WS_SUPPORT is not set
# end of HTTP Server

#
# ESP HTTPS OTA
#
# CONFIG_OTA_ALLOW_HTTP is not set
# end of ESP HTTPS OTA

#
# ESP HTTPS server
#
# CONFIG_ESP_HTTPS_SERVER_ENABLE is not set
# end of ESP HTTPS server

#
# Hardware Settings
#

#
# MAC Config
#
CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y
CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y
CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y
CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y
# CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_TWO is not set
CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_FOUR=y
CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES=4
# end of MAC Config

#
# Sleep Config
#
# CONFIG_ESP_SLEEP_POWER_DOWN_FLASH is not set
CONFIG_ESP_SLEEP_RTC_BUS_ISO_WORKAROUND=y
# CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND is not set
CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND=y
# CONFIG_ESP_SLEEP_MSPI_NEED_ALL_IO_PU is not set
# end of Sleep Config

#
# RTC Clock Config
#
# end of RTC Clock Config
# end of Hardware Settings

#
# IPC (Inter-Processor Call)
#
CONFIG_ESP_IPC_TASK_STACK_SIZE=1536
CONFIG_ESP_IPC_USES_CALLERS_PRIORITY=y
CONFIG_ESP_IPC_ISR_ENABLE=y
# end of IPC (Inter-Processor Call)

#
# LCD and Touch Panel
#

#
# LCD Peripheral Configuration
#
CONFIG_LCD_PANEL_IO_FORMAT_BUF_SIZE=32
# end of LCD Peripheral Configuration
# end of LCD and Touch Panel

#
# ESP NETIF Adapter
#
CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120
CONFIG_ESP_NETIF_TCPIP_LWIP=y
# CONFIG_ESP_NETIF_LOOPBACK is not set
CONFIG_ESP_NETIF_TCPIP_ADAPTER_COMPATIBLE_LAYER=y
# end of ESP NETIF Adapter

#
# PHY
#
CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y
# CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION is not set
CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=20
CONFIG_ESP_PHY_MAX_TX_POWER=20
CONFIG_ESP_PHY_REDUCE_TX_POWER=y
# end of PHY

#
# Power Management
#
# CONFIG_PM_ENABLE is not set
# end of Power Management

#
# ESP Ringbuf
#
# CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH is not set
# CONFIG_RINGBUF_PLACE_ISR_FUNCTIONS_INTO_FLASH is not set
# end of ESP Ringbuf

#
# ESP System Settings
#
CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=y
# CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT is not set
# CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set
# CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set
# CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME is not set

#
# Memory protection
#
# end of Memory protection

CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32
CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304
CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192
CONFIG_ESP_MAIN_TASK_AFFINITY_CPU0=y
# CONFIG_ESP_MAIN_TASK_AFFINITY_CPU1 is not set
# CONFIG_ESP_MAIN_TASK_AFFINITY_NO_AFFINITY is not set
CONFIG_ESP_MAIN_TASK_AFFINITY=0x0
CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048
CONFIG_ESP_CONSOLE_UART_DEFAULT=y
# CONFIG_ESP_CONSOLE_UART_CUSTOM is not set
# CONFIG_ESP_CONSOLE_NONE is not set
CONFIG_ESP_CONSOLE_UART=y
CONFIG_ESP_CONSOLE_MULTIPLE_UART=y
CONFIG_ESP_CONSOLE_UART_NUM=0
CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200
CONFIG_ESP_INT_WDT=y
CONFIG_ESP_INT_WDT_TIMEOUT_MS=300
CONFIG_ESP_INT_WDT_CHECK_CPU1=y
CONFIG_ESP_TASK_WDT=y
# CONFIG_ESP_TASK_WDT_PANIC is not set
CONFIG_ESP_TASK_WDT_TIMEOUT_S=5
CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y
CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1=y
# CONFIG_ESP_PANIC_HANDLER_IRAM is not set
# CONFIG_ESP_DEBUG_STUBS_ENABLE is not set
# CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_5 is not set
CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_4=y
# end of ESP System Settings

#
# High resolution timer (esp_timer)
#
# CONFIG_ESP_TIMER_PROFILING is not set
CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y
CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y
CONFIG_ESP_TIMER_TASK_STACK_SIZE=3584
CONFIG_ESP_TIMER_INTERRUPT_LEVEL=1
# CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD is not set
# CONFIG_ESP_TIMER_IMPL_FRC2 is not set
CONFIG_ESP_TIMER_IMPL_TG0_LAC=y
# end of High resolution timer (esp_timer)

#
# Wi-Fi
#
CONFIG_ESP32_WIFI_ENABLED=y
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32
# CONFIG_ESP32_WIFI_STATIC_TX_BUFFER is not set
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y
CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32
# CONFIG_ESP32_WIFI_CSI_ENABLED is not set
CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y
CONFIG_ESP32_WIFI_TX_BA_WIN=6
CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y
CONFIG_ESP32_WIFI_RX_BA_WIN=6
CONFIG_ESP32_WIFI_NVS_ENABLED=y
CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y
# CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1 is not set
CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752
CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32
CONFIG_ESP32_WIFI_IRAM_OPT=y
CONFIG_ESP32_WIFI_RX_IRAM_OPT=y
CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y
# CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set
# CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE is not set
# CONFIG_ESP_WIFI_GMAC_SUPPORT is not set
CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y
# CONFIG_ESP_WIFI_SLP_BEACON_LOST_OPT is not set
# end of Wi-Fi

#
# Core dump
#
# CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH is not set
# CONFIG_ESP_COREDUMP_ENABLE_TO_UART is not set
CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y
# end of Core dump

#
# FAT Filesystem support
#
# CONFIG_FATFS_CODEPAGE_DYNAMIC is not set
CONFIG_FATFS_CODEPAGE_437=y
# CONFIG_FATFS_CODEPAGE_720 is not set
# CONFIG_FATFS_CODEPAGE_737 is not set
# CONFIG_FATFS_CODEPAGE_771 is not set
# CONFIG_FATFS_CODEPAGE_775 is not set
# CONFIG_FATFS_CODEPAGE_850 is not set
# CONFIG_FATFS_CODEPAGE_852 is not set
# CONFIG_FATFS_CODEPAGE_855 is not set
# CONFIG_FATFS_CODEPAGE_857 is not set
# CONFIG_FATFS_CODEPAGE_860 is not set
# CONFIG_FATFS_CODEPAGE_861 is not set
# CONFIG_FATFS_CODEPAGE_862 is not set
# CONFIG_FATFS_CODEPAGE_863 is not set
# CONFIG_FATFS_CODEPAGE_864 is not set
# CONFIG_FATFS_CODEPAGE_865 is not set
# CONFIG_FATFS_CODEPAGE_866 is not set
# CONFIG_FATFS_CODEPAGE_869 is not set
# CONFIG_FATFS_CODEPAGE_932 is not set
# CONFIG_FATFS_CODEPAGE_936 is not set
# CONFIG_FATFS_CODEPAGE_949 is not set
# CONFIG_FATFS_CODEPAGE_950 is not set
CONFIG_FATFS_CODEPAGE=437
CONFIG_FATFS_LFN_NONE=y
# CONFIG_FATFS_LFN_HEAP is not set
# CONFIG_FATFS_LFN_STACK is not set
CONFIG_FATFS_FS_LOCK=0
CONFIG_FATFS_TIMEOUT_MS=10000
CONFIG_FATFS_PER_FILE_CACHE=y
# CONFIG_FATFS_USE_FASTSEEK is not set
# end of FAT Filesystem support

#
# Modbus configuration
#
CONFIG_FMB_COMM_MODE_TCP_EN=y
CONFIG_FMB_TCP_PORT_DEFAULT=502
CONFIG_FMB_TCP_PORT_MAX_CONN=5
CONFIG_FMB_TCP_CONNECTION_TOUT_SEC=20
CONFIG_FMB_COMM_MODE_RTU_EN=y
CONFIG_FMB_COMM_MODE_ASCII_EN=y
CONFIG_FMB_MASTER_TIMEOUT_MS_RESPOND=150
CONFIG_FMB_MASTER_DELAY_MS_CONVERT=200
CONFIG_FMB_QUEUE_LENGTH=20
CONFIG_FMB_PORT_TASK_STACK_SIZE=4096
CONFIG_FMB_SERIAL_BUF_SIZE=256
CONFIG_FMB_SERIAL_ASCII_BITS_PER_SYMB=8
CONFIG_FMB_SERIAL_ASCII_TIMEOUT_RESPOND_MS=1000
CONFIG_FMB_PORT_TASK_PRIO=10
# CONFIG_FMB_PORT_TASK_AFFINITY_NO_AFFINITY is not set
CONFIG_FMB_PORT_TASK_AFFINITY_CPU0=y
# CONFIG_FMB_PORT_TASK_AFFINITY_CPU1 is not set
CONFIG_FMB_PORT_TASK_AFFINITY=0x0
CONFIG_FMB_CONTROLLER_SLAVE_ID_SUPPORT=y
CONFIG_FMB_CONTROLLER_SLAVE_ID=0x00112233
CONFIG_FMB_CONTROLLER_NOTIFY_TIMEOUT=20
CONFIG_FMB_CONTROLLER_NOTIFY_QUEUE_SIZE=20
CONFIG_FMB_CONTROLLER_STACK_SIZE=4096
CONFIG_FMB_EVENT_QUEUE_TIMEOUT=20
# CONFIG_FMB_TIMER_PORT_ENABLED is not set
CONFIG_FMB_TIMER_GROUP=0
CONFIG_FMB_TIMER_INDEX=0
CONFIG_FMB_MASTER_TIMER_GROUP=0
CONFIG_FMB_MASTER_TIMER_INDEX=0
# CONFIG_FMB_TIMER_ISR_IN_IRAM is not set
# end of Modbus configuration

#
# FreeRTOS
#
# CONFIG_FREERTOS_UNICORE is not set
CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF
CONFIG_FREERTOS_TICK_SUPPORT_CORETIMER=y
CONFIG_FREERTOS_CORETIMER_0=y
# CONFIG_FREERTOS_CORETIMER_1 is not set
CONFIG_FREERTOS_SYSTICK_USES_CCOUNT=y
CONFIG_FREERTOS_HZ=1000
CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION=y
# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set
# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set
CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y
CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK=y
CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y
CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1
CONFIG_FREERTOS_ASSERT_FAIL_ABORT=y
# CONFIG_FREERTOS_ASSERT_FAIL_PRINT_CONTINUE is not set
# CONFIG_FREERTOS_ASSERT_DISABLE is not set
CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536
CONFIG_FREERTOS_ISR_STACKSIZE=1536
# CONFIG_FREERTOS_LEGACY_HOOKS is not set
CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16
CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y
# CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set
CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID=y
CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
CONFIG_FREERTOS_RUN_TIME_STATS_USING_ESP_TIMER=y
# CONFIG_FREERTOS_RUN_TIME_STATS_USING_CPU_CLK is not set
CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y
CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y
# CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set
# CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set
CONFIG_FREERTOS_DEBUG_OCDAWARE=y
# CONFIG_FREERTOS_FPU_IN_ISR is not set
CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y
# CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH is not set
# end of FreeRTOS

#
# Hardware Abstraction Layer (HAL) and Low Level (LL)
#
CONFIG_HAL_ASSERTION_EQUALS_SYSTEM=y
# CONFIG_HAL_ASSERTION_DISABLE is not set
# CONFIG_HAL_ASSERTION_SILIENT is not set
# CONFIG_HAL_ASSERTION_ENABLE is not set
CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2
# end of Hardware Abstraction Layer (HAL) and Low Level (LL)

#
# Heap memory debugging
#
CONFIG_HEAP_POISONING_DISABLED=y
# CONFIG_HEAP_POISONING_LIGHT is not set
# CONFIG_HEAP_POISONING_COMPREHENSIVE is not set
CONFIG_HEAP_TRACING_OFF=y
# CONFIG_HEAP_TRACING_STANDALONE is not set
# CONFIG_HEAP_TRACING_TOHOST is not set
# CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set
# end of Heap memory debugging

#
# jsmn
#
# CONFIG_JSMN_PARENT_LINKS is not set
# CONFIG_JSMN_STRICT is not set
# end of jsmn

#
# libsodium
#
# end of libsodium

#
# Log output
#
# CONFIG_LOG_DEFAULT_LEVEL_NONE is not set
CONFIG_LOG_DEFAULT_LEVEL_ERROR=y
# CONFIG_LOG_DEFAULT_LEVEL_WARN is not set
# CONFIG_LOG_DEFAULT_LEVEL_INFO is not set
# CONFIG_LOG_DEFAULT_LEVEL_DEBUG is not set
# CONFIG_LOG_DEFAULT_LEVEL_VERBOSE is not set
CONFIG_LOG_DEFAULT_LEVEL=1
# CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT is not set
# CONFIG_LOG_MAXIMUM_LEVEL_WARN is not set
# CONFIG_LOG_MAXIMUM_LEVEL_INFO is not set
CONFIG_LOG_MAXIMUM_LEVEL_DEBUG=y
# CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set
CONFIG_LOG_MAXIMUM_LEVEL=4
CONFIG_LOG_COLORS=y
CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y
# CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set
# end of Log output

#
# LWIP
#
CONFIG_LWIP_LOCAL_HOSTNAME="espressif"
# CONFIG_LWIP_NETIF_API is not set
# CONFIG_LWIP_TCPIP_CORE_LOCKING is not set
CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y
# CONFIG_LWIP_L2_TO_L3_COPY is not set
# CONFIG_LWIP_IRAM_OPTIMIZATION is not set
CONFIG_LWIP_TIMERS_ONDEMAND=y
CONFIG_LWIP_MAX_SOCKETS=10
# CONFIG_LWIP_USE_ONLY_LWIP_SELECT is not set
# CONFIG_LWIP_SO_LINGER is not set
CONFIG_LWIP_SO_REUSE=y
CONFIG_LWIP_SO_REUSE_RXTOALL=y
CONFIG_LWIP_SO_RCVBUF=y
# CONFIG_LWIP_NETBUF_RECVINFO is not set
CONFIG_LWIP_IP4_FRAG=y
CONFIG_LWIP_IP6_FRAG=y
# CONFIG_LWIP_IP4_REASSEMBLY is not set
# CONFIG_LWIP_IP6_REASSEMBLY is not set
# CONFIG_LWIP_IP_FORWARD is not set
# CONFIG_LWIP_STATS is not set
# CONFIG_LWIP_ETHARP_TRUST_IP_MAC is not set
CONFIG_LWIP_ESP_GRATUITOUS_ARP=y
CONFIG_LWIP_GARP_TMR_INTERVAL=60
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32
CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y
# CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set
CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y
# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set
CONFIG_LWIP_DHCP_OPTIONS_LEN=68

#
# DHCP server
#
CONFIG_LWIP_DHCPS=y
CONFIG_LWIP_DHCPS_LEASE_UNIT=60
CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8
# end of DHCP server

# CONFIG_LWIP_AUTOIP is not set
CONFIG_LWIP_IPV6=y
# CONFIG_LWIP_IPV6_AUTOCONFIG is not set
CONFIG_LWIP_IPV6_NUM_ADDRESSES=3
# CONFIG_LWIP_IPV6_FORWARD is not set
# CONFIG_LWIP_NETIF_STATUS_CALLBACK is not set
CONFIG_LWIP_NETIF_LOOPBACK=y
CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8

#
# TCP
#
CONFIG_LWIP_MAX_ACTIVE_TCP=16
CONFIG_LWIP_MAX_LISTENING_TCP=16
CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y
CONFIG_LWIP_TCP_MAXRTX=12
CONFIG_LWIP_TCP_SYNMAXRTX=12
CONFIG_LWIP_TCP_MSS=1440
CONFIG_LWIP_TCP_TMR_INTERVAL=250
CONFIG_LWIP_TCP_MSL=60000
CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5744
CONFIG_LWIP_TCP_WND_DEFAULT=5744
CONFIG_LWIP_TCP_RECVMBOX_SIZE=6
CONFIG_LWIP_TCP_QUEUE_OOSEQ=y
# CONFIG_LWIP_TCP_SACK_OUT is not set
# CONFIG_LWIP_TCP_KEEP_CONNECTION_WHEN_IP_CHANGES is not set
CONFIG_LWIP_TCP_OVERSIZE_MSS=y
# CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set
# CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set
CONFIG_LWIP_TCP_RTO_TIME=1500
# end of TCP

#
# UDP
#
CONFIG_LWIP_MAX_UDP_PCBS=16
CONFIG_LWIP_UDP_RECVMBOX_SIZE=6
# end of UDP

#
# Checksums
#
# CONFIG_LWIP_CHECKSUM_CHECK_IP is not set
# CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set
CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y
# end of Checksums

CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072
CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set
# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set
CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF
# CONFIG_LWIP_PPP_SUPPORT is not set
CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3
CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5
# CONFIG_LWIP_SLIP_SUPPORT is not set

#
# ICMP
#
CONFIG_LWIP_ICMP=y
# CONFIG_LWIP_MULTICAST_PING is not set
# CONFIG_LWIP_BROADCAST_PING is not set
# end of ICMP

#
# LWIP RAW API
#
CONFIG_LWIP_MAX_RAW_PCBS=16
# end of LWIP RAW API

#
# SNTP
#
CONFIG_LWIP_SNTP_MAX_SERVERS=1
# CONFIG_LWIP_DHCP_GET_NTP_SRV is not set
CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000
# end of SNTP

CONFIG_LWIP_ESP_LWIP_ASSERT=y

#
# Hooks
#
# CONFIG_LWIP_HOOK_TCP_ISN_NONE is not set
CONFIG_LWIP_HOOK_TCP_ISN_DEFAULT=y
# CONFIG_LWIP_HOOK_TCP_ISN_CUSTOM is not set
CONFIG_LWIP_HOOK_IP6_ROUTE_NONE=y
# CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT is not set
# CONFIG_LWIP_HOOK_IP6_ROUTE_CUSTOM is not set
CONFIG_LWIP_HOOK_ND6_GET_GW_NONE=y
# CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT is not set
# CONFIG_LWIP_HOOK_ND6_GET_GW_CUSTOM is not set
CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y
# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set
# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set
# end of Hooks

# CONFIG_LWIP_DEBUG is not set
# end of LWIP

#
# mbedTLS
#
CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y
# CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set
# CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set
CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384
CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096
# CONFIG_MBEDTLS_DYNAMIC_BUFFER is not set
# CONFIG_MBEDTLS_DEBUG is not set

#
# mbedTLS v2.28.x related
#
# CONFIG_MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH is not set
# CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set
# CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set
CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=y
# end of mbedTLS v2.28.x related

#
# Certificate Bundle
#
CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y
# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set
# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set
# CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set
CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_MAX_CERTS=200
# end of Certificate Bundle

# CONFIG_MBEDTLS_ECP_RESTARTABLE is not set
# CONFIG_MBEDTLS_CMAC_C is not set
CONFIG_MBEDTLS_HARDWARE_AES=y
CONFIG_MBEDTLS_HARDWARE_MPI=y
CONFIG_MBEDTLS_HARDWARE_SHA=y
CONFIG_MBEDTLS_ROM_MD5=y
# CONFIG_MBEDTLS_ATCA_HW_ECDSA_SIGN is not set
# CONFIG_MBEDTLS_ATCA_HW_ECDSA_VERIFY is not set
CONFIG_MBEDTLS_HAVE_TIME=y
# CONFIG_MBEDTLS_HAVE_TIME_DATE is not set
CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y
CONFIG_MBEDTLS_SHA512_C=y
CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y
# CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set
# CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set
# CONFIG_MBEDTLS_TLS_DISABLED is not set
CONFIG_MBEDTLS_TLS_SERVER=y
CONFIG_MBEDTLS_TLS_CLIENT=y
CONFIG_MBEDTLS_TLS_ENABLED=y

#
# TLS Key Exchange Methods
#
CONFIG_MBEDTLS_PSK_MODES=y
CONFIG_MBEDTLS_KEY_EXCHANGE_PSK=y
CONFIG_MBEDTLS_KEY_EXCHANGE_DHE_PSK=y
CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_PSK=y
CONFIG_MBEDTLS_KEY_EXCHANGE_RSA_PSK=y
CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y
CONFIG_MBEDTLS_KEY_EXCHANGE_DHE_RSA=y
CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y
CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y
CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y
CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA=y
CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA=y
# end of TLS Key Exchange Methods

CONFIG_MBEDTLS_SSL_RENEGOTIATION=y
# CONFIG_MBEDTLS_SSL_PROTO_SSL3 is not set
CONFIG_MBEDTLS_SSL_PROTO_TLS1=y
CONFIG_MBEDTLS_SSL_PROTO_TLS1_1=y
CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y
# CONFIG_MBEDTLS_SSL_PROTO_GMTSSL1_1 is not set
# CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set
CONFIG_MBEDTLS_SSL_ALPN=y
CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y
CONFIG_MBEDTLS_X509_CHECK_KEY_USAGE=y
CONFIG_MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE=y
CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y

#
# Symmetric Ciphers
#
CONFIG_MBEDTLS_AES_C=y
# CONFIG_MBEDTLS_CAMELLIA_C is not set
# CONFIG_MBEDTLS_DES_C is not set
CONFIG_MBEDTLS_RC4_DISABLED=y
# CONFIG_MBEDTLS_RC4_ENABLED_NO_DEFAULT is not set
# CONFIG_MBEDTLS_RC4_ENABLED is not set
# CONFIG_MBEDTLS_BLOWFISH_C is not set
# CONFIG_MBEDTLS_XTEA_C is not set
CONFIG_MBEDTLS_CCM_C=y
CONFIG_MBEDTLS_GCM_C=y
# CONFIG_MBEDTLS_NIST_KW_C is not set
# end of Symmetric Ciphers

# CONFIG_MBEDTLS_RIPEMD160_C is not set

#
# Certificates
#
CONFIG_MBEDTLS_PEM_PARSE_C=y
CONFIG_MBEDTLS_PEM_WRITE_C=y
CONFIG_MBEDTLS_X509_CRL_PARSE_C=y
CONFIG_MBEDTLS_X509_CSR_PARSE_C=y
# end of Certificates

CONFIG_MBEDTLS_ECP_C=y
CONFIG_MBEDTLS_ECDH_C=y
CONFIG_MBEDTLS_ECDSA_C=y
# CONFIG_MBEDTLS_ECJPAKE_C is not set
CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y
CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y
CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y
CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED=y
CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED=y
CONFIG_MBEDTLS_ECP_DP_SECP192K1_ENABLED=y
CONFIG_MBEDTLS_ECP_DP_SECP224K1_ENABLED=y
CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED=y
CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED=y
CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y
CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y
CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y
CONFIG_MBEDTLS_ECP_NIST_OPTIM=y
# CONFIG_MBEDTLS_POLY1305_C is not set
# CONFIG_MBEDTLS_CHACHA20_C is not set
# CONFIG_MBEDTLS_HKDF_C is not set
# CONFIG_MBEDTLS_THREADING_C is not set
# CONFIG_MBEDTLS_LARGE_KEY_SOFTWARE_MPI is not set
# CONFIG_MBEDTLS_SECURITY_RISKS is not set
# end of mbedTLS

#
# mDNS
#
CONFIG_MDNS_MAX_SERVICES=10
CONFIG_MDNS_TASK_PRIORITY=1
CONFIG_MDNS_TASK_STACK_SIZE=4096
# CONFIG_MDNS_TASK_AFFINITY_NO_AFFINITY is not set
CONFIG_MDNS_TASK_AFFINITY_CPU0=y
# CONFIG_MDNS_TASK_AFFINITY_CPU1 is not set
CONFIG_MDNS_TASK_AFFINITY=0x0
CONFIG_MDNS_SERVICE_ADD_TIMEOUT_MS=2000
# CONFIG_MDNS_STRICT_MODE is not set
CONFIG_MDNS_TIMER_PERIOD_MS=100
# CONFIG_MDNS_NETWORKING_SOCKET is not set
CONFIG_MDNS_MULTIPLE_INSTANCE=y
# end of mDNS

#
# ESP-MQTT Configurations
#
CONFIG_MQTT_PROTOCOL_311=y
CONFIG_MQTT_TRANSPORT_SSL=y
CONFIG_MQTT_TRANSPORT_WEBSOCKET=y
CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y
# CONFIG_MQTT_MSG_ID_INCREMENTAL is not set
# CONFIG_MQTT_SKIP_PUBLISH_IF_DISCONNECTED is not set
# CONFIG_MQTT_REPORT_DELETED_MESSAGES is not set
# CONFIG_MQTT_USE_CUSTOM_CONFIG is not set
# CONFIG_MQTT_TASK_CORE_SELECTION_ENABLED is not set
# CONFIG_MQTT_CUSTOM_OUTBOX is not set
# end of ESP-MQTT Configurations

#
# Newlib
#
CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=y
# CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF is not set
# CONFIG_NEWLIB_STDOUT_LINE_ENDING_CR is not set
# CONFIG_NEWLIB_STDIN_LINE_ENDING_CRLF is not set
# CONFIG_NEWLIB_STDIN_LINE_ENDING_LF is not set
CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y
# CONFIG_NEWLIB_NANO_FORMAT is not set
# end of Newlib

#
# NVS
#
# CONFIG_NVS_ASSERT_ERROR_CHECK is not set
# end of NVS

#
# OpenSSL
#
# CONFIG_OPENSSL_DEBUG is not set
CONFIG_OPENSSL_ERROR_STACK=y
# CONFIG_OPENSSL_ASSERT_DO_NOTHING is not set
CONFIG_OPENSSL_ASSERT_EXIT=y
# end of OpenSSL

#
# OpenThread
#
# CONFIG_OPENTHREAD_ENABLED is not set
# end of OpenThread

#
# PThreads
#
CONFIG_PTHREAD_TASK_PRIO_DEFAULT=5
CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072
CONFIG_PTHREAD_STACK_MIN=768
CONFIG_PTHREAD_DEFAULT_CORE_NO_AFFINITY=y
# CONFIG_PTHREAD_DEFAULT_CORE_0 is not set
# CONFIG_PTHREAD_DEFAULT_CORE_1 is not set
CONFIG_PTHREAD_TASK_CORE_DEFAULT=-1
CONFIG_PTHREAD_TASK_NAME_DEFAULT="pthread"
# end of PThreads

#
# SPI Flash driver
#
# CONFIG_SPI_FLASH_VERIFY_WRITE is not set
# CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set
CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y
CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS=y
# CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set
# CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED is not set
# CONFIG_SPI_FLASH_USE_LEGACY_IMPL is not set
# CONFIG_SPI_FLASH_SHARE_SPI1_BUS is not set
# CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set
CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y
CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20
CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1
CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192
# CONFIG_SPI_FLASH_SIZE_OVERRIDE is not set
# CONFIG_SPI_FLASH_CHECK_ERASE_TIMEOUT_DISABLED is not set
# CONFIG_SPI_FLASH_OVERRIDE_CHIP_DRIVER_LIST is not set

#
# Auto-detect flash chips
#
CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=y
CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=y
CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y
CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=y
# CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP is not set
# CONFIG_SPI_FLASH_SUPPORT_TH_CHIP is not set
# end of Auto-detect flash chips

CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=y
# end of SPI Flash driver

#
# SPIFFS Configuration
#
CONFIG_SPIFFS_MAX_PARTITIONS=3

#
# SPIFFS Cache Configuration
#
CONFIG_SPIFFS_CACHE=y
CONFIG_SPIFFS_CACHE_WR=y
# CONFIG_SPIFFS_CACHE_STATS is not set
# end of SPIFFS Cache Configuration

CONFIG_SPIFFS_PAGE_CHECK=y
CONFIG_SPIFFS_GC_MAX_RUNS=10
# CONFIG_SPIFFS_GC_STATS is not set
CONFIG_SPIFFS_PAGE_SIZE=256
CONFIG_SPIFFS_OBJ_NAME_LEN=32
# CONFIG_SPIFFS_FOLLOW_SYMLINKS is not set
CONFIG_SPIFFS_USE_MAGIC=y
CONFIG_SPIFFS_USE_MAGIC_LENGTH=y
CONFIG_SPIFFS_META_LENGTH=4
CONFIG_SPIFFS_USE_MTIME=y

#
# Debug Configuration
#
# CONFIG_SPIFFS_DBG is not set
# CONFIG_SPIFFS_API_DBG is not set
# CONFIG_SPIFFS_GC_DBG is not set
# CONFIG_SPIFFS_CACHE_DBG is not set
# CONFIG_SPIFFS_CHECK_DBG is not set
# CONFIG_SPIFFS_TEST_VISUALISATION is not set
# end of Debug Configuration
# end of SPIFFS Configuration

#
# TCP Transport
#

#
# Websocket
#
CONFIG_WS_TRANSPORT=y
CONFIG_WS_BUFFER_SIZE=1024
# end of Websocket
# end of TCP Transport

#
# Unity unit testing library
#
CONFIG_UNITY_ENABLE_FLOAT=y
CONFIG_UNITY_ENABLE_DOUBLE=y
# CONFIG_UNITY_ENABLE_64BIT is not set
# CONFIG_UNITY_ENABLE_COLOR is not set
CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y
# CONFIG_UNITY_ENABLE_FIXTURE is not set
# CONFIG_UNITY_ENABLE_BACKTRACE_ON_FAIL is not set
# end of Unity unit testing library

#
# Virtual file system
#
CONFIG_VFS_SUPPORT_IO=y
CONFIG_VFS_SUPPORT_DIR=y
CONFIG_VFS_SUPPORT_SELECT=y
CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT=y
CONFIG_VFS_SUPPORT_TERMIOS=y

#
# Host File System I/O (Semihosting)
#
CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1
# end of Host File System I/O (Semihosting)
# end of Virtual file system

#
# Wear Levelling
#
# CONFIG_WL_SECTOR_SIZE_512 is not set
CONFIG_WL_SECTOR_SIZE_4096=y
CONFIG_WL_SECTOR_SIZE=4096
# end of Wear Levelling

#
# Wi-Fi Provisioning Manager
#
CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16
CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30
CONFIG_WIFI_PROV_BLE_FORCE_ENCRYPTION=y
# end of Wi-Fi Provisioning Manager

#
# Supplicant
#
CONFIG_WPA_MBEDTLS_CRYPTO=y
# CONFIG_WPA_WAPI_PSK is not set
# CONFIG_WPA_SUITE_B_192 is not set
# CONFIG_WPA_DEBUG_PRINT is not set
# CONFIG_WPA_TESTING_OPTIONS is not set
# CONFIG_WPA_WPS_STRICT is not set
# CONFIG_WPA_11KV_SUPPORT is not set
# CONFIG_WPA_MBO_SUPPORT is not set
# CONFIG_WPA_DPP_SUPPORT is not set
# end of Supplicant

#
# LittleFS
#
CONFIG_LITTLEFS_MAX_PARTITIONS=3
CONFIG_LITTLEFS_PAGE_SIZE=256
CONFIG_LITTLEFS_OBJ_NAME_LEN=64
CONFIG_LITTLEFS_READ_SIZE=128
CONFIG_LITTLEFS_WRITE_SIZE=128
CONFIG_LITTLEFS_LOOKAHEAD_SIZE=128
CONFIG_LITTLEFS_CACHE_SIZE=512
CONFIG_LITTLEFS_BLOCK_CYCLES=512
# CONFIG_LITTLEFS_USE_MTIME is not set
# CONFIG_LITTLEFS_USE_ONLY_HASH is not set
# CONFIG_LITTLEFS_HUMAN_READABLE is not set
# CONFIG_LITTLEFS_SPIFFS_COMPAT is not set
# CONFIG_LITTLEFS_FLUSH_FILE_EVERY_WRITE is not set
# end of LittleFS

#
# HULP
#
CONFIG_HULP_LABEL_AUTO_BASE=60000
# CONFIG_HULP_USE_APPROX_FAST_CLK is not set
CONFIG_HULP_FAST_CLK_CAL_CYCLES=100
# CONFIG_HULP_UART_TX_OD is not set
# CONFIG_HULP_MACRO_OPTIMISATIONS is not set
# end of HULP
# end of Component config

#
# Compatibility options
#
# CONFIG_LEGACY_INCLUDE_COMMON_HEADERS is not set
# end of Compatibility options

# Deprecated options for backward compatibility
CONFIG_TOOLPREFIX="xtensa-esp32-elf-"
# CONFIG_LOG_BOOTLOADER_LEVEL_NONE is not set
# CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set
# CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set
CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y
# CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG is not set
# CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE is not set
CONFIG_LOG_BOOTLOADER_LEVEL=3
CONFIG_APP_ROLLBACK_ENABLE=y
# CONFIG_APP_ANTI_ROLLBACK is not set
# CONFIG_FLASH_ENCRYPTION_ENABLED is not set
# CONFIG_FLASHMODE_QIO is not set
# CONFIG_FLASHMODE_QOUT is not set
CONFIG_FLASHMODE_DIO=y
# CONFIG_FLASHMODE_DOUT is not set
# CONFIG_MONITOR_BAUD_9600B is not set
# CONFIG_MONITOR_BAUD_57600B is not set
CONFIG_MONITOR_BAUD_115200B=y
# CONFIG_MONITOR_BAUD_230400B is not set
# CONFIG_MONITOR_BAUD_921600B is not set
# CONFIG_MONITOR_BAUD_2MB is not set
# CONFIG_MONITOR_BAUD_OTHER is not set
CONFIG_MONITOR_BAUD_OTHER_VAL=115200
CONFIG_MONITOR_BAUD=115200
CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG=y
# CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE is not set
CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y
# CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set
# CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set
CONFIG_OPTIMIZATION_ASSERTION_LEVEL=2
# CONFIG_CXX_EXCEPTIONS is not set
CONFIG_STACK_CHECK_NONE=y
# CONFIG_STACK_CHECK_NORM is not set
# CONFIG_STACK_CHECK_STRONG is not set
# CONFIG_STACK_CHECK_ALL is not set
# CONFIG_WARN_WRITE_STRINGS is not set
# CONFIG_DISABLE_GCC8_WARNINGS is not set
# CONFIG_ESP32_APPTRACE_DEST_TRAX is not set
CONFIG_ESP32_APPTRACE_DEST_NONE=y
CONFIG_ESP32_APPTRACE_LOCK_ENABLE=y
CONFIG_ADC2_DISABLE_DAC=y
# CONFIG_SPIRAM_SUPPORT is not set
CONFIG_TRACEMEM_RESERVE_DRAM=0x0
CONFIG_ULP_COPROC_ENABLED=y
CONFIG_ULP_COPROC_RESERVE_MEM=1024
CONFIG_BROWNOUT_DET=y
CONFIG_BROWNOUT_DET_LVL_SEL_0=y
# CONFIG_BROWNOUT_DET_LVL_SEL_1 is not set
# CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set
# CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set
# CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set
# CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set
# CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set
# CONFIG_BROWNOUT_DET_LVL_SEL_7 is not set
CONFIG_BROWNOUT_DET_LVL=0
CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC=y
# CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL is not set
# CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_OSC is not set
# CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_8MD256 is not set
# CONFIG_DISABLE_BASIC_ROM_CONSOLE is not set
# CONFIG_NO_BLOBS is not set
# CONFIG_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set
# CONFIG_EVENT_LOOP_PROFILING is not set
CONFIG_POST_EVENTS_FROM_ISR=y
CONFIG_POST_EVENTS_FROM_IRAM_ISR=y
# CONFIG_TWO_UNIVERSAL_MAC_ADDRESS is not set
CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y
CONFIG_NUMBER_OF_UNIVERSAL_MAC_ADDRESS=4
# CONFIG_ESP_SYSTEM_PD_FLASH is not set
# CONFIG_ESP32C3_LIGHTSLEEP_GPIO_RESET_WORKAROUND is not set
CONFIG_IPC_TASK_STACK_SIZE=1536
CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y
# CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION is not set
CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20
CONFIG_ESP32_PHY_MAX_TX_POWER=20
CONFIG_ESP32_REDUCE_PHY_TX_POWER=y
CONFIG_ESP32S2_PANIC_PRINT_HALT=y
# CONFIG_ESP32S2_PANIC_PRINT_REBOOT is not set
# CONFIG_ESP32S2_PANIC_SILENT_REBOOT is not set
# CONFIG_ESP32S2_PANIC_GDBSTUB is not set
CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32
CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304
CONFIG_MAIN_TASK_STACK_SIZE=8192
CONFIG_CONSOLE_UART_DEFAULT=y
# CONFIG_CONSOLE_UART_CUSTOM is not set
# CONFIG_ESP_CONSOLE_UART_NONE is not set
CONFIG_CONSOLE_UART=y
CONFIG_CONSOLE_UART_NUM=0
CONFIG_CONSOLE_UART_BAUDRATE=115200
CONFIG_INT_WDT=y
CONFIG_INT_WDT_TIMEOUT_MS=300
CONFIG_INT_WDT_CHECK_CPU1=y
CONFIG_TASK_WDT=y
# CONFIG_TASK_WDT_PANIC is not set
CONFIG_TASK_WDT_TIMEOUT_S=5
CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y
CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1=y
# CONFIG_ESP32_DEBUG_STUBS_ENABLE is not set
CONFIG_TIMER_TASK_STACK_SIZE=3584
# CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set
# CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set
CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y
CONFIG_MB_MASTER_TIMEOUT_MS_RESPOND=150
CONFIG_MB_MASTER_DELAY_MS_CONVERT=200
CONFIG_MB_QUEUE_LENGTH=20
CONFIG_MB_SERIAL_TASK_STACK_SIZE=4096
CONFIG_MB_SERIAL_BUF_SIZE=256
CONFIG_MB_SERIAL_TASK_PRIO=10
CONFIG_MB_CONTROLLER_SLAVE_ID_SUPPORT=y
CONFIG_MB_CONTROLLER_SLAVE_ID=0x00112233
CONFIG_MB_CONTROLLER_NOTIFY_TIMEOUT=20
CONFIG_MB_CONTROLLER_NOTIFY_QUEUE_SIZE=20
CONFIG_MB_CONTROLLER_STACK_SIZE=4096
CONFIG_MB_EVENT_QUEUE_TIMEOUT=20
# CONFIG_MB_TIMER_PORT_ENABLED is not set
CONFIG_MB_TIMER_GROUP=0
CONFIG_MB_TIMER_INDEX=0
# CONFIG_ENABLE_STATIC_TASK_CLEAN_UP_HOOK is not set
CONFIG_TIMER_TASK_PRIORITY=1
CONFIG_TIMER_TASK_STACK_DEPTH=2048
CONFIG_TIMER_QUEUE_LENGTH=10
# CONFIG_L2_TO_L3_COPY is not set
# CONFIG_USE_ONLY_LWIP_SELECT is not set
CONFIG_ESP_GRATUITOUS_ARP=y
CONFIG_GARP_TMR_INTERVAL=60
CONFIG_TCPIP_RECVMBOX_SIZE=32
CONFIG_TCP_MAXRTX=12
CONFIG_TCP_SYNMAXRTX=12
CONFIG_TCP_MSS=1440
CONFIG_TCP_MSL=60000
CONFIG_TCP_SND_BUF_DEFAULT=5744
CONFIG_TCP_WND_DEFAULT=5744
CONFIG_TCP_RECVMBOX_SIZE=6
CONFIG_TCP_QUEUE_OOSEQ=y
# CONFIG_ESP_TCP_KEEP_CONNECTION_WHEN_IP_CHANGES is not set
CONFIG_TCP_OVERSIZE_MSS=y
# CONFIG_TCP_OVERSIZE_QUARTER_MSS is not set
# CONFIG_TCP_OVERSIZE_DISABLE is not set
CONFIG_UDP_RECVMBOX_SIZE=6
CONFIG_TCPIP_TASK_STACK_SIZE=3072
CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
# CONFIG_TCPIP_TASK_AFFINITY_CPU0 is not set
# CONFIG_TCPIP_TASK_AFFINITY_CPU1 is not set
CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF
# CONFIG_PPP_SUPPORT is not set
CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5
CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072
CONFIG_ESP32_PTHREAD_STACK_MIN=768
CONFIG_ESP32_DEFAULT_PTHREAD_CORE_NO_AFFINITY=y
# CONFIG_ESP32_DEFAULT_PTHREAD_CORE_0 is not set
# CONFIG_ESP32_DEFAULT_PTHREAD_CORE_1 is not set
CONFIG_ESP32_PTHREAD_TASK_CORE_DEFAULT=-1
CONFIG_ESP32_PTHREAD_TASK_NAME_DEFAULT="pthread"
CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y
# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_FAILS is not set
# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED is not set
CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y
CONFIG_SUPPORT_TERMIOS=y
CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1
# End of deprecated options

New Log:

I (3061) log: [+ FSM Cosmoiler <Begin> +] entry()

D (3061) MEDIATOR: LED_START
Guru Meditation Error: Core  0 panic'ed (Interrupt wdt timeout on CPU0). 

Core  0 register dump:
PC      : 0x4008e038  PS      : 0x00060734  A0      : 0x8008c4d2  A1      : 0x3ffafb80
0x4008e038: vListInsert at C:/esp/esp-idf/components/freertos/list.c:166 (discriminator 1)

A2      : 0x3ffaf674  A3      : 0x3ffafcd0  A4      : 0x00000000  A5      : 0x00060723
A6      : 0x3ffb1408  A7      : 0x00000011  A8      : 0x3ffafcd0  A9      : 0x3ffafcd0
A10     : 0x00000001  A11     : 0x00000001  A12     : 0x00000001  A13     : 0x00060723
A14     : 0x00000003  A15     : 0x00060023  SAR     : 0x00000004  EXCCAUSE: 0x00000005
EXCVADDR: 0x00000000  LBEG    : 0x00000000  LEND    : 0x00000000  LCOUNT  : 0x00000000


Backtrace: 0x4008e035:0x3ffafb80 0x4008c4cf:0x3ffafba0 0x4008b51a:0x3ffafbc0 0x4008349b:0x3ffafc00 0x4008e0b1:0x3ffafc20
0x4008e035: vListInsert at C:/esp/esp-idf/components/freertos/list.c:166 (discriminator 1)

0x4008c4cf: vTaskPlaceOnEventList at C:/esp/esp-idf/components/freertos/tasks.c:3566

0x4008b51a: xQueueSemaphoreTake at C:/esp/esp-idf/components/freertos/queue.c:1688

0x4008349b: ipc_task at C:/esp/esp-idf/components/esp_ipc/src/esp_ipc.c:54

0x4008e0b1: vPortTaskWrapper at C:/esp/esp-idf/components/freertos/port/xtensa/port.c:131



Core  1 register dump:
PC      : 0x4008e219  PS      : 0x00060134  A0      : 0x8008d2d3  A1      : 0x3ffb5ab0
0x4008e219: compare_and_set_native at C:/esp/esp-idf/components/esp_hw_support/include/soc/compare_set.h:25
 (inlined by) spinlock_acquire at C:/esp/esp-idf/components/esp_hw_support/include/soc/spinlock.h:103
 (inlined by) xPortEnterCriticalTimeout at C:/esp/esp-idf/components/freertos/port/xtensa/port.c:288

A2      : 0x3ffb11c8  A3      : 0xffffffff  A4      : 0x00000001  A5      : 0x00060f23
A6      : 0x00000000  A7      : 0x00000000  A8      : 0x0000abab  A9      : 0x0000abab
A10     : 0x00060123  A11     : 0x0000cdcd  A12     : 0xb33fffff  A13     : 0x00060123
A14     : 0x3ffbb278  A15     : 0x00000004  SAR     : 0x00000006  EXCCAUSE: 0x00000005
EXCVADDR: 0x00000000  LBEG    : 0x4000164d  LEND    : 0x40001667  LCOUNT  : 0xfffffffc


Backtrace: 0x4008e216:0x3ffb5ab0 0x4008d2d0:0x3ffb5ad0 0x4008b44f:0x3ffb5af0 0x4008b5b0:0x3ffb5b30 0x4013ce51:0x3ffb5b50 0x40084144:0x3ffb5b70 0x400852d5:0x3ffb5ba0 0x400852e1:0x3ffb5bc0 0x40087f55:0x3ffb5be0 0x40084f35:0x3ffb5c00 0x4013cd75:0x3ffb5c40 0x4013ecf3:0x3ffb5c70 0x401c9a4e:0x3ffb5c90 0x4013f99d:0x3ffb5cb0 0x4013fc29:0x3ffb5d10 0x4013e2bd:0x3ffb5da0 0x4013e8b9:0x3ffb5e00 0x4013ec8b:0x3ffb5e20 0x401c7a41:0x3ffb5e40 0x400fb1eb:0x3ffb5e60 0x400ebbf7:0x3ffb5e80 0x40114ff7:0x3ffb5ea0 0x401148f2:0x3ffb5f10 0x400e06d2:0x3ffb60a0 0x400e08cf:0x3ffb60f0 0x4008e0b1:0x3ffb6110
0x4008e216: compare_and_set_native at C:/esp/esp-idf/components/esp_hw_support/include/soc/compare_set.h:25
 (inlined by) spinlock_acquire at C:/esp/esp-idf/components/esp_hw_support/include/soc/spinlock.h:103
 (inlined by) xPortEnterCriticalTimeout at C:/esp/esp-idf/components/freertos/port/xtensa/port.c:288

0x4008d2d0: vPortEnterCritical at C:/esp/esp-idf/components/freertos/port/xtensa/include/freertos/portmacro.h:578
 (inlined by) pvTaskIncrementMutexHeldCount at C:/esp/esp-idf/components/freertos/tasks.c:5338

0x4008b44f: xQueueSemaphoreTake at C:/esp/esp-idf/components/freertos/queue.c:1585

0x4008b5b0: xQueueTakeMutexRecursive at C:/esp/esp-idf/components/freertos/queue.c:731

0x4013ce51: spi_flash_op_lock at C:/esp/esp-idf/components/spi_flash/cache_utils.c:98

0x40084144: spi_flash_disable_interrupts_caches_and_other_cpu at C:/esp/esp-idf/components/spi_flash/cache_utils.c:139

0x400852d5: cache_disable at C:/esp/esp-idf/components/spi_flash/spi_flash_os_func_app.c:70

0x400852e1: spi1_start at C:/esp/esp-idf/components/spi_flash/spi_flash_os_func_app.c:99

0x40087f55: spiflash_start_default at C:/esp/esp-idf/components/spi_flash/esp_flash_api.c:128

0x40084f35: esp_flash_read at C:/esp/esp-idf/components/spi_flash/esp_flash_api.c:821

0x4013cd75: esp_partition_read at C:/esp/esp-idf/components/spi_flash/partition.c:424

0x4013ecf3: nvs::NVSPartition::read(unsigned int, void*, unsigned int) at C:/esp/esp-idf/components/nvs_flash/src/nvs_partition.cpp:45

0x401c9a4e: nvs::Page::readEntry(unsigned int, nvs::Item&) const at C:/esp/esp-idf/components/nvs_flash/src/nvs_page.cpp:879

0x4013f99d: nvs::Page::findItem(unsigned char, nvs::ItemType, char const*, unsigned int&, nvs::Item&, unsigned char, nvs::VerOffset) at C:/esp/esp-idf/components/nvs_flash/src/nvs_page.cpp:929

0x4013fc29: nvs::Page::readItem(unsigned char, nvs::ItemType, char const*, void*, unsigned int, unsigned char, nvs::VerOffset) at C:/esp/esp-idf/components/nvs_flash/src/nvs_page.cpp:284

0x4013e2bd: nvs::Storage::readItem(unsigned char, nvs::ItemType, char const*, void*, unsigned int) at C:/esp/esp-idf/components/nvs_flash/src/nvs_storage.cpp:558

0x4013e8b9: nvs::NVSHandleSimple::get_typed_item(nvs::ItemType, char const*, void*, unsigned int) at C:/esp/esp-idf/components/nvs_flash/src/nvs_handle_simple.cpp:36

0x4013ec8b: nvs::NVSHandleLocked::get_typed_item(nvs::ItemType, char const*, void*, unsigned int) at C:/esp/esp-idf/components/nvs_flash/src/nvs_handle_locked.cpp:77

0x401c7a41: int nvs::NVSHandle::get_item<unsigned int>(char const*, unsigned int&) at C:/esp/esp-idf/components/nvs_flash/include/nvs_handle.hpp:275

0x400fb1eb: SensorObj::read() at H:/Cosmoiler/Prog/Firmware/ESP32/cosmoiler-wsp/cosmoiler-idf/main/Config/src/objSensor.cpp:34

0x400ebbf7: cnfg::OdometerCnfg::read() at H:/Cosmoiler/Prog/Firmware/ESP32/cosmoiler-wsp/cosmoiler-idf/main/Config/src/cnfgOdometer.cpp:40

0x40114ff7: MainInitState::MainInitState(MainTask*) at H:/Cosmoiler/Prog/Firmware/ESP32/cosmoiler-wsp/cosmoiler-idf/main/FSM/TaskMain/src/States/init.cpp:27

0x401148f2: void __gnu_cxx::new_allocator<MainInitState>::construct<MainInitState, MainTask*&>(MainInitState*, MainTask*&) at c:\esp\esp-idf\tools\xtensa-esp32-elf\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\8.4.0\ext/new_allocator.h:136
 (inlined by) void std::allocator_traits<std::allocator<MainInitState> >::construct<MainInitState, MainTask*&>(std::allocator<MainInitState>&, MainInitState*, MainTask*&) at c:\esp\esp-idf\tools\xtensa-esp32-elf\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\8.4.0\bits/alloc_traits.h:475
 (inlined by) std::_Sp_counted_ptr_inplace<MainInitState, std::allocator<MainInitState>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<MainTask*&>(std::allocator<MainInitState>, MainTask*&) at c:\esp\esp-idf\tools\xtensa-esp32-elf\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\8.4.0\bits/shared_ptr_base.h:545
 (inlined by) std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<MainInitState, std::allocator<MainInitState>, MainTask*&>(MainInitState*&, std::_Sp_alloc_shared_tag<std::allocator<MainInitState> >, MainTask*&) at c:\esp\esp-idf\tools\xtensa-esp32-elf\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\8.4.0\bits/shared_ptr_base.h:677
 (inlined by) std::__shared_ptr<MainInitState, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<MainInitState>, MainTask*&>(std::_Sp_alloc_shared_tag<std::allocator<MainInitState> >, MainTask*&) at c:\esp\esp-idf\tools\xtensa-esp32-elf\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\8.4.0\bits/shared_ptr_base.h:1342
 (inlined by) std::shared_ptr<MainInitState>::shared_ptr<std::allocator<MainInitState>, MainTask*&>(std::_Sp_alloc_shared_tag<std::allocator<MainInitState> >, MainTask*&) at c:\esp\esp-idf\tools\xtensa-esp32-elf\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\8.4.0\bits/shared_ptr.h:359
 (inlined by) std::shared_ptr<MainInitState> std::allocate_shared<MainInitState, std::allocator<MainInitState>, MainTask*&>(std::allocator<MainInitState> const&, MainTask*&) at c:\esp\esp-idf\tools\xtensa-esp32-elf\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\8.4.0\bits/shared_ptr.h:706
 (inlined by) std::shared_ptr<MainInitState> std::make_shared<MainInitState, MainTask*&>(MainTask*&) at c:\esp\esp-idf\tools\xtensa-esp32-elf\esp-2021r2-patch5-8.4.0\xtensa-esp32-elf\xtensa-esp32-elf\include\c++\8.4.0\bits/shared_ptr.h:722
 (inlined by) MainCheckFSState::handle() at H:/Cosmoiler/Prog/Firmware/ESP32/cosmoiler-wsp/cosmoiler-idf/main/FSM/TaskMain/src/States/check_fs.cpp:129

0x400e06d2: MainTask::run() at H:/Cosmoiler/Prog/Firmware/ESP32/cosmoiler-wsp/cosmoiler-idf/main/FSM/TaskMain/src/tskMain.cpp:114

0x400e08cf: frt::Task<MainTask, 8192u>::entryPoint(void*) at H:/Cosmoiler/Prog/Firmware/ESP32/cosmoiler-wsp/cosmoiler-idf/main/Lib/Frt/src/frt.hpp:255 (discriminator 
6)

0x4008e0b1: vPortTaskWrapper at C:/esp/esp-idf/components/freertos/port/xtensa/port.c:131

Code

main.cpp
#include "mediator.h"
#include "Arduino.h"
#include "logger.h"
#include "singleton.hpp"

extern "C"  {
  void app_main();
}
static Mediator app;

void app_main()
{
    initArduino();
    esp_log_level_set("*", ESP_LOG_DEBUG);
    esp_log_level_set("wifi", ESP_LOG_ERROR);
    esp_log_level_set("gpio", ESP_LOG_ERROR);
    esp_log_level_set("nvs", ESP_LOG_ERROR);
    esp_log_level_set("efuse", ESP_LOG_ERROR);
    ESP_LOGD("MAIN", "Test Load");
    app.Setup();
}
MainTask main_;

void Mediator::Setup() {
    main_.setMediator(this);
    main_.setup();
    main_.start();
}
tskMain.cpp
#include <algorithm>
#include <functional>
#include "singleton.hpp"
#include "mediator.h"
#include "tskMain.h"
#include <LittleFS.h>
#include "mainconfig.h"
#include "utils.h"
#include "logger.h"
#include "driver/rtc_io.h"
#include "shared.h"



RTC_DATA_ATTR ulp_vars_t MainTask::m_ULP_vars;

/**
 * @brief Construct a new MainTask:: MainTask object
 *
 */
MainTask::MainTask()
{

	WiFi.onEvent([this](WiFiEvent_t event, WiFiEventInfo_t info){

		LOG_IPRINT("[* WIFI *] connecting client\r\n");

		trigger_wifi_client_ = true; // сервер запуститься при создании состояния MAIN_WORK

		LOG_VPRINT("Free heap: %d", ESP.getFreeHeap());

	}, WiFiEvent_t::ARDUINO_EVENT_WIFI_AP_STACONNECTED);

	WiFi.onEvent([this](WiFiEvent_t event, WiFiEventInfo_t info){

		LOG_IPRINT("[* WIFI *] disconnecting client\r\n");

		trigger_wifi_client_ = false;

        app_mediator->Notify(this, appmed::action::ASYNC_CLOSE, {});

		LOG_VPRINT("Free heap: %d", ESP.getFreeHeap());

	}, WiFiEvent_t::ARDUINO_EVENT_WIFI_AP_STADISCONNECTED);
}

/**
 * @brief
 *
 */
void MainTask::setup() {
    xlogger_        = Singleton<xLogger>::Instance();
}

void MainTask::setMediator(IMediator *m_mediator) {
    app_mediator = m_mediator;
}

void MainTask::start() {
	BSP::init();
	BSP::gpsOn();

    if(!hulp_is_deep_sleep_wakeup()) {
        ULP_Init();
		ESP_LOGI(TAG, "ULP Init");
    } 

	m_TimerDeepSleep = std::unique_ptr<msTimer>(new msTimer(CONFIG_COSMOILER_TIME_GO_DEEPSLEEP_MS, std::bind(&MainTask::TimerDeepSleepCb, this)));

    LittleFS.begin(true); // При ошибке ФС происходит ее форматирование

    app_mediator->Notify(this, appmed::action::LED_INIT, {});

    LedOn();

    app_mediator->Notify(this, appmed::action::CONFIG_INIT, {});

    app_mediator->Notify(this, appmed::action::WIFI_INIT, {});

	OutInfo();

    app_mediator->Notify(this, appmed::action::PUMP_INIT, {});

    app_mediator->Notify(this, appmed::action::PUMP_PARAMS_SET, {1000, 10, 1, (bool)DRVPump::PUMP_OUT});
    app_mediator->Notify(this, appmed::action::PUMP_START, {});

    is_pump_work_end_ = false;
    while (!is_pump_work_end_) // изменяется в функции Notify TODO: impl
        app_mediator->Notify(this, appmed::action::PUMP_TASK_POST, {}); // mediator->register("PumpTaskPost", bind(&DRVPump::postTask, Singleton<DRVPump>::Instance(), _1));

	ESP_LOGI(TAG, "CONFIG_MIN_THRESHOLD = %d", CONFIG_COSMOILER_MIN_THRESHOLD_V);
	ESP_LOGI(TAG, "CONFIG_MAX_THRESHOLD = %d", CONFIG_COSMOILER_MAX_THRESHOLD_V);
	ESP_LOGI(TAG, "Counter wakeup = %d", MainTask::m_ULP_vars.vin.wakeup.counter.val);
	ESP_LOGI(TAG, "Counter reason = %d", MainTask::m_ULP_vars.vin.wakeup.reason.val);

	changeState( std::make_shared<MainInitState>() );

    Task::start(PRIO_MAIN, "Main", 1);
}

bool MainTask::run() {
    msleep(10);
	m_ptrState->handle();

    xlogger_->handle();

	if (is_restart_after_upd) BSP::restart();

    return true;
}



//**----------- Helpers -------------------------
void MainTask::LedOn() {
    app_mediator->Notify(this, appmed::action::LED_CTRL, {true});
}

void MainTask::LedOff() {
    app_mediator->Notify(this, appmed::action::LED_CTRL, {false});
}

//------------------------------------------------------

/**
 * @brief Переход в состояние
 *
 * @param newState
 */
void MainTask::changeState( const std::shared_ptr< IMainState >& newState ) {
	if (m_ptrState != newState) {
		m_ptrState = newState;
		m_ptrState->setContext(this);
	}
}

init.cpp
#include "mediator.h"
#include "tskMain.h"
#include "utils.h"
#include "AESCrypt.h"
#include "config.h"

MainInitState::MainInitState(MainTask *m_ctx)
{
    LOG_IPRINT("[++ FSM Main <Init> ++]\r\n");

    _ctx = m_ctx;
    BSP::gpsOn();
    vTaskDelay(100 / portTICK_PERIOD_MS);

	setupVer();

    Mediator *ptrMediator = ((Mediator*)_ctx->app_mediator);
    ptrMediator->Notify(_ctx, appmed::action::LED_BRIGHT_SET, {ptrMediator->SystemCnfg().bright()});
    ptrMediator->Notify(_ctx, appmed::action::TELE_BEGIN, {});
    ptrMediator->Notify(_ctx, appmed::action::COSM_BEGIN, {});

    if (ptrMediator->SystemCnfg().gps() != _ctx->is_module_gnss_) {
        ptrMediator->SystemCnfg().gps() = _ctx->is_module_gnss_;
        ptrMediator->SystemCnfg().write();
    }
	if ( !ptrMediator->SystemCnfg().gps() ) {
!!!        **ptrMediator->OdometerCnfg().read();** // 0x400ebbf7: cnfg::OdometerCnfg::read() at H:/Cosmoiler/Prog/Firmware/ESP32/cosmoiler-wsp/cosmoiler-idf/main/Config/src/cnfgOdometer.cpp:75
        if (ptrMediator->OdometerCnfg().Sensor().gnss() != false) {
            ptrMediator->OdometerCnfg().Sensor().gnss() = false;
            ptrMediator->OdometerCnfg().write();
        }
	} else {
        LOG_IPRINT("[* GPS *] Sensor OK!\r\n");
    }
}

MainInitState::~MainInitState() {
}

void MainInitState::handle() {
	ReadID();
}

void MainInitState::setupVer()
{
    //Config *config_ = _ctx->config_;
    Mediator *ptrMediator = ((Mediator*)_ctx->app_mediator);

	snprintf(static_cast<char*>(ptrMediator->VersionCnfg().fw()), ptrMediator->VersionCnfg().size_fw(),
				PSTR("%d.%d.%d"), CONFIG_COSMOILER_VERSION_MAJOR, CONFIG_COSMOILER_VERSION_MINOR, CONFIG_COSMOILER_VERSION_FRONTEND);

	snprintf(static_cast<char*>(ptrMediator->VersionCnfg().hw()), ptrMediator->VersionCnfg().size_hw(), PSTR("%s%d"), CONFIG_COSMOILER_HWSTR, CONFIG_COSMOILER_HWREV);
	strlcpy(static_cast<char*>(ptrMediator->VersionCnfg().sn()), ptrMediator->SystemCnfg().pn(), ptrMediator->VersionCnfg().size_sn());
}

cnfgOdometer.cpp

#include "cnfgOdometer.h"

using namespace cnfg;

/*************************************************************
 * * Настройки для режима "Одометр"
 * ! trip.json
 * ***********************************************************/

void OdometerCnfg::load(JsonObjectConst obj) {
    //strlcpy(m_id, "/trip.json", sizeof(id));
    if (obj[F("sensor")])   _data.Sensor.load(obj[F("sensor")]);
    if (obj[F("smart")])    _data.Smart.load(obj[F("smart")]);
    if (obj[F("wheel")])    _data.Wheel.load(obj[F("wheel")]);

    JsonArrayConst tmp = obj[F("presets")];
    uint8_t i = 0;
    for (JsonObjectConst _preset : tmp) {
        if (_preset) _data.Presets[i]->load(_preset);
        i++;
        if (i >= NUM_PRESETS) break;
    }
}

void OdometerCnfg::save(JsonObject obj) const {
    obj[F("id")] = _id;
    _data.Sensor.save(obj.createNestedObject(F("sensor")));
    _data.Smart.save(obj.createNestedObject(F("smart")));
    _data.Wheel.save(obj.createNestedObject(F("wheel")));

    JsonArray tmp = obj.createNestedArray(F("presets"));
    for (int i = 0; i < NUM_PRESETS; i++)
        _data.Presets[i]->save(tmp.createNestedObject());
}

bool OdometerCnfg::read()
{
    _data = _def;
!!!    **_data.Sensor.read();** // 0x400ebbf7: cnfg::OdometerCnfg::read() at H:/Cosmoiler/Prog/Firmware/ESP32/cosmoiler-wsp/cosmoiler-idf/main/Config/src/cnfgOdometer.cpp:75
    _data.Smart.read();
    _data.Wheel.read();

    for (uint8_t i = 0; i < NUM_PRESETS; i++) {
        if (_data.Presets[i] != nullptr) {
            _data.Presets[i]->read();
        }
    }
    return true;
}

/**
 * @brief Write value odometer (trip.json) to NVS
 *
 */
void OdometerCnfg::write() const {
    _data.Sensor.write();
    _data.Smart.write();
    _data.Wheel.write();

    for (int i = 0; i < NUM_PRESETS; i++)
        _data.Presets[i]->write();
}

objSensor.cpp
#include "objSensor.h"
#include "string.h"

/**
 * @brief
 *
 * @param obj
 */
void SensorObj::load(JsonObjectConst obj)
{
    _data.gnss    = obj["gnss"]   | _def.gnss;
    _data.imp     = obj["imp"]    | _def.imp;
    _data.hdop    = obj["hdop"]   | _def.hdop;
}

/**
 * @brief
 *
 * @param obj
 */
void SensorObj::save(JsonObject obj) const
{
    obj["gnss"] = _data.gnss;
    obj["imp"]  = _data.imp;
    obj["hdop"] = _data.hdop;
}

bool SensorObj::read()
{
    esp_err_t err = ESP_OK;

    _data = _def;
    err = _handle->get_item(&_keys[0][0], _data.imp);
!!!    err = _handle->get_item(&_keys[1][0], _data.gnss); // 0x400fb1eb: SensorObj::read() at H:/Cosmoiler/Prog/Firmware/ESP32/cosmoiler-wsp/cosmoiler-idf/main/Config/src/objSensor.cpp:34
    err = _handle->get_item(&_keys[2][0], _data.hdop);

    if (err) {
        write();
        return false;
    }

    return true;
}

void SensorObj::write() const
{
    esp_err_t err;

    err = _handle->set_item(&_keys[0][0], _data.imp);
    err = _handle->set_item(&_keys[1][0], _data.gnss);
    err = _handle->set_item(&_keys[2][0], _data.hdop);
}

frt.hpp
/*
 * Copyright (c) 2018-2020 Flössie <[email protected]>
 *
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to
 * the following conditions:
 *
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 *
 * https://github.com/Floessie/frt
 */

#pragma once

#include <algorithm>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/semphr.h"
#include "freertos/queue.h"
#include "freertos/portable.h"
#include "freertos/portmacro.h"
//#include <stdint.h>

namespace frt
{
	//extern portMUX_TYPE m_spinlock;

	namespace detail {

		inline void yieldFromIsr() __attribute__((always_inline));

		void yieldFromIsr()
		{
			#ifdef portYIELD_FROM_ISR
			portYIELD_FROM_ISR();
			#else
				#ifdef portEND_SWITCHING_ISR
					portEND_SWITCHING_ISR();
				#else
					taskYIELD();
				#endif
			#endif
		}

	}

	template<typename T, unsigned int STACK_SIZE = configMINIMAL_STACK_SIZE * sizeof(StackType_t)>
	class Task
	{
	public:
		Task() :
			running(false),
			do_stop(false),
			handle(nullptr)
		{
            //vPortCPUInitializeMutex(&m_spinlock);
			spinlock_initialize(&m_spinlock);
		}

		~Task()
		{
			stop();
		}

		explicit Task(const Task& other) = delete;
		Task& operator =(const Task& other) = delete;

		bool start(unsigned char priority = 0, const char* name = "", const uint8_t core_id = 1)
		{
			if (priority >= configMAX_PRIORITIES) {
				priority = configMAX_PRIORITIES - 1;
			}

#if configSUPPORT_STATIC_ALLOCATION > 0
			handle = xTaskCreateStaticPinnedToCore(
				entryPoint,
				name,
				STACK_SIZE / sizeof(StackType_t),
				this,
				priority,
				stack,
				&state,
                core_id
			);
			return handle;
#else
			return
				xTaskCreate(
					entryPoint,
					name,
					STACK_SIZE / sizeof(StackType_t),
					this,
					priority,
					&handle
				) == pdPASS;
#endif
		}

		bool stop()
		{
			return stop(false);
		}

		bool stopFromIdleTask()
		{
			return stop(true);
		}

		bool isRunning()
		{
            portENTER_CRITICAL(&m_spinlock);
			const bool res = running;
            portEXIT_CRITICAL(&m_spinlock);

			return res;
		}

		unsigned int getUsedStackSize() const
		{
			return STACK_SIZE - uxTaskGetStackHighWaterMark(handle) * sizeof(StackType_t);
		}

		void post()
		{
			xTaskNotifyGive(handle);
		}

		void preparePostFromInterrupt()
		{
			higher_priority_task_woken = 0;
		}

		void postFromInterrupt()
		{
			vTaskNotifyGiveFromISR(handle, &higher_priority_task_woken);
		}

		void finalizePostFromInterrupt() __attribute__((always_inline))
		{
			if (higher_priority_task_woken) {
				detail::yieldFromIsr();
			}
		}

	protected:
		void yield()
		{
			taskYIELD();
		}

		void msleep(unsigned int msecs)
		{
			const TickType_t ticks = msecs / portTICK_PERIOD_MS;

			vTaskDelay(std::max(1U, ticks));
		}

		void msleep(unsigned int msecs, unsigned int& remainder)
		{
			msecs += remainder;
			const TickType_t ticks = msecs / portTICK_PERIOD_MS;
			remainder = msecs % portTICK_PERIOD_MS * static_cast<bool>(ticks);

			vTaskDelay(std::max(1U, ticks));
		}

		void wait()
		{
			ulTaskNotifyTake(pdTRUE, portMAX_DELAY);
		}

		bool wait(unsigned int msecs)
		{
			const TickType_t ticks = msecs / portTICK_PERIOD_MS;

			return ulTaskNotifyTake(pdTRUE, std::max(1U, ticks));
		}

		bool wait(unsigned int msecs, unsigned int& remainder)
		{
			msecs += remainder;
			const TickType_t ticks = msecs / portTICK_PERIOD_MS;
			remainder = msecs % portTICK_PERIOD_MS * static_cast<bool>(ticks);

			if (ulTaskNotifyTake(pdTRUE, std::max(1U, ticks))) {
				remainder = 0;
				return true;
			}

			return false;
		}

		void beginCriticalSection() __attribute__((always_inline))
		{
			portENTER_CRITICAL(&m_spinlock);
		}

		void endCriticalSection() __attribute__((always_inline))
		{
			portEXIT_CRITICAL(&m_spinlock);
		}

	private:
		bool stop(bool from_idle_task)
		{
			if (!handle) {
				return false;
			}

            portENTER_CRITICAL(&m_spinlock);
			do_stop = true;
			while (running) {
                portEXIT_CRITICAL(&m_spinlock);
				if (!from_idle_task) {
					vTaskDelay(1);
				} else {
					taskYIELD();
				}
                portENTER_CRITICAL(&m_spinlock);
			}
            portEXIT_CRITICAL(&m_spinlock);

			return true;
		}

		static void entryPoint(void* data)
		{
			Task* const self = static_cast<Task*>(data); // для доступа к НЕ static-членам из статической функции

			bool do_stop;

			portENTER_CRITICAL(&self->m_spinlock);
			//portENTER_CRITICAL(&m_spinlock);
			self->running = true;
			do_stop = self->do_stop;
            portEXIT_CRITICAL(&self->m_spinlock);

			while (!do_stop && static_cast<T*>(self)->run()) {
				portENTER_CRITICAL(&self->m_spinlock);
				do_stop = self->do_stop;
				portEXIT_CRITICAL(&self->m_spinlock);
			}

			portENTER_CRITICAL(&self->m_spinlock);
			self->do_stop = false;
			self->running = false;
			portEXIT_CRITICAL(&self->m_spinlock);

			const TaskHandle_t handle_copy = self->handle;
			self->handle = nullptr;

			vTaskDelete(handle_copy);
		}

		volatile bool running;
		volatile bool do_stop;
		TaskHandle_t handle;
		BaseType_t higher_priority_task_woken;
        portMUX_TYPE m_spinlock;
#if configSUPPORT_STATIC_ALLOCATION > 0
		StackType_t stack[STACK_SIZE / sizeof(StackType_t)];
		StaticTask_t state;
#endif
	};

	class Mutex final
	{
	public:
		Mutex() :
			handle(
#if configSUPPORT_STATIC_ALLOCATION > 0
				xSemaphoreCreateMutexStatic(&buffer)
#else
				xSemaphoreCreateMutex()
#endif
			)
		{
		}

		~Mutex()
		{
			vSemaphoreDelete(handle);
		}

		explicit Mutex(const Mutex& other) = delete;
		Mutex& operator =(const Mutex& other) = delete;

		void lock()
		{
			xSemaphoreTake(handle, portMAX_DELAY);
		}

		void unlock()
		{
			xSemaphoreGive(handle);
		}

	private:
		SemaphoreHandle_t handle;
#if configSUPPORT_STATIC_ALLOCATION > 0
		StaticSemaphore_t buffer;
#endif
	};

	class Semaphore final
	{
	public:
		enum class Type {
			BINARY,
			COUNTING
		};

		Semaphore(Type type = Type::BINARY) :
			handle(
#if configSUPPORT_STATIC_ALLOCATION > 0
				type == Type::BINARY
					? xSemaphoreCreateBinaryStatic(&buffer)
					: xSemaphoreCreateCountingStatic(static_cast<UBaseType_t>(-1), 0, &buffer)
#else
				type == Type::BINARY
					? xSemaphoreCreateBinary()
					: xSemaphoreCreateCounting(static_cast<UBaseType_t>(-1), 0)
#endif
			)
		{
		}

		~Semaphore()
		{
			vSemaphoreDelete(handle);
		}

		explicit Semaphore(const Semaphore& other) = delete;
		Semaphore& operator =(const Semaphore& other) = delete;

		void wait()
		{
			xSemaphoreTake(handle, portMAX_DELAY);
		}

		bool wait(unsigned int msecs)
		{
			const uint32_t ticks = msecs / portTICK_PERIOD_MS;

			return xSemaphoreTake(handle, std::max(1U, ticks)) == pdTRUE;
		}

		bool wait(unsigned int msecs, unsigned int& remainder)
		{
			msecs += remainder;
			const uint32_t ticks = msecs / portTICK_PERIOD_MS;
			remainder = msecs % portTICK_PERIOD_MS * static_cast<bool>(ticks);

			if (xSemaphoreTake(handle, std::max(1U, ticks)) == pdTRUE) {
				remainder = 0;
				return true;
			}

			return false;
		}

		void post()
		{
			xSemaphoreGive(handle);
		}

		void preparePostFromInterrupt()
		{
			higher_priority_task_woken = 0;
		}

		void postFromInterrupt()
		{
			xSemaphoreGiveFromISR(handle, &higher_priority_task_woken);
		}

		void finalizePostFromInterrupt() __attribute__((always_inline))
		{
			if (higher_priority_task_woken) {
				detail::yieldFromIsr();
			}
		}

	private:
		SemaphoreHandle_t handle;
		BaseType_t higher_priority_task_woken;
#if configSUPPORT_STATIC_ALLOCATION > 0
		StaticSemaphore_t buffer;
#endif
	};

	template<typename T, unsigned int ITEMS>
	class Queue final
	{
	public:
		Queue() :
			handle(
#if configSUPPORT_STATIC_ALLOCATION > 0
				xQueueCreateStatic(ITEMS, sizeof(T), buffer, &state)
#else
				xQueueCreate(ITEMS, sizeof(T))
#endif
			)
		{
		}

		~Queue()
		{
			vQueueDelete(handle);
		}

		explicit Queue(const Queue& other) = delete;
		Queue& operator =(const Queue& other) = delete;

		unsigned int getFillLevel() const
		{
			return ITEMS - uxQueueSpacesAvailable(handle);
		}

		void push(const T& item)
		{
			xQueueSend(handle, &item, portMAX_DELAY);
		}

		bool push(const T& item, unsigned int msecs)
		{
			const TickType_t ticks = msecs / portTICK_PERIOD_MS;

			return xQueueSend(handle, &item, std::max(1U, ticks)) == pdTRUE;
		}

		bool push(const T& item, unsigned int msecs, unsigned int& remainder)
		{
			msecs += remainder;
			const TickType_t ticks = msecs / portTICK_PERIOD_MS;
			remainder = msecs % portTICK_PERIOD_MS * static_cast<bool>(ticks);

			if (xQueueSend(handle, &item, std::max(1U, ticks)) == pdTRUE) {
				remainder = 0;
				return true;
			}

			return false;
		}

		void preparePushFromInterrupt()
		{
			higher_priority_task_woken_from_push = 0;
		}

		bool pushFromInterrupt(const T& item)
		{
			return xQueueSendFromISR(handle, &item, &higher_priority_task_woken_from_push) == pdTRUE;
		}

		void finalizePushFromInterrupt() __attribute__((always_inline))
		{
			if (higher_priority_task_woken_from_push) {
				detail::yieldFromIsr();
			}
		}

		void pop(T& item)
		{
			xQueueReceive(handle, &item, portMAX_DELAY);
		}

		bool pop(T& item, unsigned int msecs)
		{
			const uint32_t ticks = msecs / portTICK_PERIOD_MS;

			return xQueueReceive(handle, &item, std::max(1U, ticks)) == pdTRUE;
		}

		bool pop(T& item, unsigned int msecs, unsigned int& remainder)
		{
			msecs += remainder;
			const uint32_t ticks = msecs / portTICK_PERIOD_MS;
			remainder = msecs % portTICK_PERIOD_MS * static_cast<bool>(ticks);

			if (xQueueReceive(handle, &item, std::max(1U, ticks)) == pdTRUE) {
				remainder = 0;
				return true;
			}

			return false;
		}

		void preparePopFromInterrupt()
		{
			higher_priority_task_woken_from_pop = 0;
		}

		bool popFromInterrupt(const T& item)
		{
			return xQueueReceiveFromISR(handle, &item, &higher_priority_task_woken_from_pop);
		}

		void finalizePopFromInterrupt() __attribute__((always_inline))
		{
			if (higher_priority_task_woken_from_pop) {
				detail::yieldFromIsr();
			}
		}

	private:
		QueueHandle_t handle;
		BaseType_t higher_priority_task_woken_from_push;
		BaseType_t higher_priority_task_woken_from_pop;
#if configSUPPORT_STATIC_ALLOCATION > 0
		uint8_t buffer[ITEMS * sizeof(T)];
		StaticQueue_t state;
#endif
	};

}

@kriegste
Copy link

How is the signal strength? We had similar and rare WDT timeouts on very very poor WiFi connections in random parts of the IDF. We were not yet able to create a minimum code example.

@AxelLin
Copy link
Contributor

AxelLin commented Dec 29, 2022

Changed CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK to "y" - the crashes did not stop. Periodic error in a random place of the code.

Previously, the code worked (on esp-idf version 4.3). There were no global architecture changes except for the addition of an intermediary (class Mediator). There were no changes in the code regarding working with FreeRTOS. Now sometimes the code also works fine, but more often it crashes.

If you are sure it was good in older versions, you can run "git bisect" on v4.4 branch to find the first bad commit.

@0xjakob
Copy link
Contributor

0xjakob commented Dec 29, 2022

@cosmoiler

Thanks for the reproducing code. We'll take a closer look. Meanwhile, you can also follow @AxelLin's suggestion.

@espressif-bot espressif-bot removed the Awaiting Response awaiting a response from the author label Feb 15, 2023
@espressif-bot espressif-bot added Status: Selected for Development Issue is selected for development and removed Status: Opened Issue is new labels Apr 13, 2023
@AxelLin
Copy link
Contributor

AxelLin commented Apr 23, 2023

@cosmoiler

Thanks for the reproducing code. We'll take a closer look.

@0xjakob
So can you reproduce the issue? Do you have further finding?

@0xjakob
Copy link
Contributor

0xjakob commented Aug 13, 2024

@cosmoiler Did you have a change to try your code on v5.0 or above and did the issue persist there?

@0xjakob
Copy link
Contributor

0xjakob commented Sep 5, 2024

@HDLA-BG Thanks for letting us know. Would you be able to provide us with the complete code for a reproducer? The aforementioned code is missing several header files, so we can't even build it. Ideally, a zip file of the minimal reproducing example application, including sdkconfig and excluding the build folder, would be great.

@HDLA-BG
Copy link

HDLA-BG commented Sep 11, 2024

@0xjakob Sorry I commented a wrong issue.
I deleted my comment above

@AdityaHPatwardhan
Copy link
Collaborator

AdityaHPatwardhan commented Sep 17, 2024

@cosmoiler Any update on the issue?
Are you able to reproduce this issue on the v5.x branch of esp-idf?
Just to note, the test code provided seems old now. Is it possible to provide a test code based on latest esp-idf. Or branches that are active at the moment.
Thanks

@AdityaHPatwardhan AdityaHPatwardhan added the Awaiting Response awaiting a response from the author label Sep 17, 2024
@AdityaHPatwardhan
Copy link
Collaborator

AdityaHPatwardhan commented Sep 20, 2024

Hi @cosmoiler I will go ahead and close this issue since there hasnt been any updates for long time.
If you still face the same issue then please re-open the issue and help provide a short reproducing code.
Thanks,
Aditya

@espressif-bot espressif-bot added Status: Done Issue is done internally Resolution: NA Issue resolution is unavailable and removed Status: Selected for Development Issue is selected for development labels Sep 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Awaiting Response awaiting a response from the author Resolution: NA Issue resolution is unavailable Status: Done Issue is done internally Type: Bug bugs in IDF
Projects
None yet
Development

No branches or pull requests

7 participants