ESP32 task corruption when playing A2DP
Posted: Tue Oct 21, 2025 1:48 pm
Hi there,
We're seeing a crash / task corruption problem when playing audio over A2DP for a while (anywhere between 2-8 hours). We're running quite some tasks, and we've been seeing different tasks be corrupted across different test runs, but almost always with the same error pattern:
Chip is ESP32-D0WD-V3 (revision v3.1), we're on ESP IDF v5.5.1.
We're a bit at a loss for where to start looking. We've got most the following sdkconfig options (and a lot more, just a snippet of safety features) enabled:
We're using both PSRAM and flash writes every once in a while, so cache disables and concurrency waits do happen, but without direct impact at normal runtime.
Attached is a number of the coredumps that we've gotten over trying to debug the issue.
Interestingly, one of the crashes seemed to instead be in the r_rwbtdm_isr_wrapper.
Any pointers to where to start looking or related experiences are appreciated!
We're seeing a crash / task corruption problem when playing audio over A2DP for a while (anywhere between 2-8 hours). We're running quite some tasks, and we've been seeing different tasks be corrupted across different test runs, but almost always with the same error pattern:
Code: Select all
===============================================================
==================== ESP32 CORE DUMP START ====================
The ROM ELF file won't load automatically since it was not found for the provided chip type.
Crashed task handle: 0x3ffec710, name: 'btController', GDB name: 'process 1073661712'
================== CURRENT THREAD REGISTERS ===================
exccause 0x0 (IllegalInstructionCause)
excvaddr 0x0
epc1 0x0
epc2 0x0
epc3 0x0
epc4 0x0
epc5 0x0
epc6 0x0
epc7 0x0
eps2 0x0
eps3 0x0
eps4 0x0
eps5 0x0
eps6 0x0
eps7 0x0
pc 0x20000000 0x20000000
lbeg 0x0 0
lend 0x0 0
lcount 0x0 0
sar 0x0 0
ps 0x30 48
threadptr <unavailable>
br <unavailable>
scompare1 <unavailable>
acclo <unavailable>
acchi <unavailable>
m0 <unavailable>
m1 <unavailable>
m2 <unavailable>
m3 <unavailable>
expstate <unavailable>
f64r_lo <unavailable>
f64r_hi <unavailable>
f64s <unavailable>
fcr <unavailable>
fsr <unavailable>
a0 0x20000070 536871024
a1 0x0 0
a2 0x0 0
a3 0x0 0
a4 0x0 0
a5 0x0 0
a6 0x0 0
a7 0x0 0
a8 0x0 0
a9 0x0 0
a10 0x0 0
a11 0x0 0
a12 0x0 0
a13 0x0 0
a14 0x0 0
a15 0x0 0
==================== CURRENT THREAD STACK =====================
#0 0x20000000 in ?? ()
The current crashed task is corrupted.
Task #0 info: flags, tcb, stack (1, 3ffec710, 20000000).
======================== THREADS INFO =========================
Id Target Id Frame
* 1 process 1073661712 0x20000000 in ?? ()
2 process 1073465700 0x4008c176 in esp_crosscore_int_send (core_id=0, reason_mask=1) at /COMPONENT_ESP_SYSTEM_DIR/crosscore_int.c:121
3 process 1073468012 0x40093b45 in esp_cpu_wait_for_intr () at /COMPONENT_ESP_HW_SUPPORT_DIR/cpu.c:64
4 process 1073468400 0x40093b45 in esp_cpu_wait_for_intr () at /COMPONENT_ESP_HW_SUPPORT_DIR/cpu.c:64
5 process 1073547984 0x4008c176 in esp_crosscore_int_send (core_id=1, reason_mask=1) at /COMPONENT_ESP_SYSTEM_DIR/crosscore_int.c:121
6 process 1073543084 0x4008c176 in esp_crosscore_int_send (core_id=0, reason_mask=1) at /COMPONENT_ESP_SYSTEM_DIR/crosscore_int.c:121
7 process 1073565904 0x4008c176 in esp_crosscore_int_send (core_id=0, reason_mask=1) at /COMPONENT_ESP_SYSTEM_DIR/crosscore_int.c:121
8 process 1073571508 0x4000bff0 in ?? ()
9 process 1073537424 0x4000bff0 in ?? ()
10 process 1073551712 0x00000017 in ?? ()
11 process 1073575708 0x4000bff0 in ?? ()
12 process 1073515560 0x4000bff0 in ?? ()
13 process 1073545508 0x4000bff0 in ?? ()
14 process 1073609880 0x4000bff0 in ?? ()
15 process 1073610268 0x4000bff0 in ?? ()
16 process 1073637428 0x4000bff0 in ?? ()
17 process 1073454348 0x4000bff0 in ?? ()
18 process 1073459092 0x4000bff0 in ?? ()
19 process 1073444144 0x4000bff0 in ?? ()
20 process 1073479788 0x4000bff0 in ?? ()
21 process 1073601468 0x4000bff0 in ?? ()
22 process 1073562960 0x4000bff0 in ?? ()
23 process 1073533952 0x4000bff0 in ?? ()
24 process 1073468788 0x4000bff0 in ?? ()
25 process 1073685896 0x4000bff0 in ?? ()
26 process 1073693452 0x4000bff0 in ?? ()
27 process 1073680964 0x4000bff0 in ?? ()
TCB NAME PRIO C/B STACK USED/FREE
---------- ---------------- -------- ----------------
0x3ffec710 btController 23/23 560/3524
0x3ffbc964 main 1/1 640/4464
0x3ffbd26c IDLE0 0/0 480/1368
0x3ffbd3f0 IDLE1 0/0 480/1356
0x3ffd0ad0 audio_service 5/5 592/2464
0x3ffcf7ac encoder_task 10/10 560/1476
0x3ffd50d0 ui_leds 8/8 544/1488
0x3ffd66b4 dsp_monitor 3/3 608/2460
0x3ffce190 LogBackendTask 1/1 688/3392
0x3ffd1960 BtA2DPTask 10/10 544/3536
0x3ffd771c uart_rx_task 18/18 672/1364
0x3ffc8c28 i2s_output_task 21/21 672/1368
0x3ffd0124 input_hal 17/17 512/1532
0x3ffdfc98 skaa_rx_task 7/7 544/2524
0x3ffdfe1c skaa_tx_task 7/7 640/1396
0x3ffe6834 console_repl 2/2 1280/2800
0x3ffb9d0c ipc1 24/24 512/1532
0x3ffbaf94 esp_timer 22/22 528/3552
0x3ffb7530 ipc0 24/24 512/1524
0x3ffc006c app_wq 15/15 528/6628
0x3ffddbbc sys_evt 20/20 592/3000
0x3ffd4550 volume_task 5/5 544/2000
0x3ffcd400 log_processor 10/10 736/2320
0x3ffbd574 Tmr Svc 22/22 576/2488
0x3fff2588 hciT 22/22 560/1996
0x3fff430c BTU_TASK 20/20 560/4296
0x3fff1244 BTC_TASK 19/19 560/3012
==================== THREAD 1 (TCB: 0x3ffec710, name: 'btController') =====================
#0 0x20000000 in ?? ()
The task '1' is corrupted.
Task #0 info: flags, tcb, stack (1, 3ffec710, 20000000).
==================== THREAD 2 (TCB: 0x3ffbc964, name: 'main') =====================
#0 0x4008c176 in esp_crosscore_int_send (core_id=0, reason_mask=1) at /COMPONENT_ESP_SYSTEM_DIR/crosscore_int.c:121
#1 0x4008c19b in esp_crosscore_int_send_yield (core_id=0) at /COMPONENT_ESP_SYSTEM_DIR/crosscore_int.c:125
#2 0x4009a7f8 in vTaskDelay (xTicksToDelay=1) at /COMPONENT_XTENSA_DIR/include/xt_utils.h:41
#3 0x401bc855 in delay_ms ()
#4 0x400d3df4 in app_main () at ./src/bsp/sherpa_lite/main.c:73
#5 0x4021745f in main_task (args=0x0) at /COMPONENT_FREERTOS_DIR/app_startup.c:208
#6 0x40099523 in vPortTaskWrapper (pxCode=0x40217410 <main_task>, pvParameters=0x0) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:139
==================== THREAD 3 (TCB: 0x3ffbd26c, name: 'IDLE0') =====================
#0 0x40093b45 in esp_cpu_wait_for_intr () at /COMPONENT_ESP_HW_SUPPORT_DIR/cpu.c:64
#1 0x402168c9 in esp_vApplicationIdleHook () at /COMPONENT_ESP_SYSTEM_DIR/freertos_hooks.c:58
#2 0x4009a433 in prvIdleTask (pvParameters=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/tasks.c:4350
#3 0x40099523 in vPortTaskWrapper (pxCode=0x4009a390 <prvIdleTask>, pvParameters=0x0) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:139
==================== THREAD 4 (TCB: 0x3ffbd3f0, name: 'IDLE1') =====================
#0 0x40093b45 in esp_cpu_wait_for_intr () at /COMPONENT_ESP_HW_SUPPORT_DIR/cpu.c:64
#1 0x402168c9 in esp_vApplicationIdleHook () at /COMPONENT_ESP_SYSTEM_DIR/freertos_hooks.c:58
#2 0x4009a433 in prvIdleTask (pvParameters=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/tasks.c:4350
#3 0x40099523 in vPortTaskWrapper (pxCode=0x4009a390 <prvIdleTask>, pvParameters=0x0) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:139
==================== THREAD 5 (TCB: 0x3ffd0ad0, name: 'audio_service') =====================
#0 0x4008c176 in esp_crosscore_int_send (core_id=1, reason_mask=1) at /COMPONENT_ESP_SYSTEM_DIR/crosscore_int.c:121
#1 0x4008c19b in esp_crosscore_int_send_yield (core_id=1) at /COMPONENT_ESP_SYSTEM_DIR/crosscore_int.c:125
#2 0x4009a7f8 in vTaskDelay (xTicksToDelay=1) at /COMPONENT_XTENSA_DIR/include/xt_utils.h:41
#3 0x401bc855 in delay_ms ()
#4 0x400e2fc4 in audio_service_task (arg=0x0) at ./src/app/services/audio/audio.c:144
#5 0x40099523 in vPortTaskWrapper (pxCode=0x400e2f34 <audio_service_task>, pvParameters=0x0) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:139
==================== THREAD 6 (TCB: 0x3ffcf7ac, name: 'encoder_task') =====================
#0 0x4008c176 in esp_crosscore_int_send (core_id=0, reason_mask=1) at /COMPONENT_ESP_SYSTEM_DIR/crosscore_int.c:121
#1 0x4008c19b in esp_crosscore_int_send_yield (core_id=0) at /COMPONENT_ESP_SYSTEM_DIR/crosscore_int.c:125
#2 0x4009a770 in xTaskDelayUntil (pxPreviousWakeTime=<optimized out>, xTimeIncrement=<optimized out>) at /COMPONENT_XTENSA_DIR/include/xt_utils.h:41
#3 0x400e2590 in encoder_task (arg=0x0) at ./src/bsp/sherpa_lite/encoder/encoder.c:61
#4 0x40099523 in vPortTaskWrapper (pxCode=0x400e24b4 <encoder_task>, pvParameters=0x0) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:139
==================== THREAD 7 (TCB: 0x3ffd50d0, name: 'ui_leds') =====================
#0 0x4008c176 in esp_crosscore_int_send (core_id=0, reason_mask=1) at /COMPONENT_ESP_SYSTEM_DIR/crosscore_int.c:121
#1 0x4008c19b in esp_crosscore_int_send_yield (core_id=0) at /COMPONENT_ESP_SYSTEM_DIR/crosscore_int.c:125
#2 0x4009a770 in xTaskDelayUntil (pxPreviousWakeTime=<optimized out>, xTimeIncrement=<optimized out>) at /COMPONENT_XTENSA_DIR/include/xt_utils.h:41
#3 0x400ef2a9 in ui_leds_task (arg=0x0) at ./src/app/ui/ui.c:57
#4 0x40099523 in vPortTaskWrapper (pxCode=0x400ef270 <ui_leds_task>, pvParameters=0x0) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:139
==================== THREAD 8 (TCB: 0x3ffd66b4, name: 'dsp_monitor') =====================
#0 0x4000bff0 in ?? ()
#1 0x40099889 in vPortClearInterruptMaskFromISR (prev_level=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:560
#2 vPortExitCritical (mux=0x3ffd747c <xTempQueueStorage+84>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:514
#3 0x40098add in xQueueReceive (xQueue=0x3ffd7428 <xTempQueueStorage>, pvBuffer=0x3ffd7350 <xStack+2860>, xTicksToWait=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/queue.c:1632
#4 0x40102770 in dsp_monitor_thread (pvParameters=0x0) at ./src/bsp/sherpa_lite/dsp/dsp.c:136
#5 0x40099523 in vPortTaskWrapper (pxCode=0x401024ec <dsp_monitor_thread>, pvParameters=0x0) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:139
==================== THREAD 9 (TCB: 0x3ffce190, name: 'LogBackendTask') =====================
#0 0x4000bff0 in ?? ()
#1 0x40099889 in vPortClearInterruptMaskFromISR (prev_level=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:560
#2 vPortExitCritical (mux=0x3f805944) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:514
#3 0x4009747c in prvReceiveGeneric (pxRingbuffer=0x3f8058dc, pvItem1=0x3ffcf1a8 <xStack+3752>, pvItem2=0x0, xItemSize1=0x3ffcf22c <xStack+3884>, xItemSize2=0x0, xMaxSize=0, xTicksToWait=<optimized out>, xTicksToWait@entry=200) at /COMPONENT_ESP_RINGBUF_DIR/ringbuf.c:885
#4 0x4009770e in xRingbufferReceive (xRingbuffer=0x3f8058dc, pxItemSize=0x3ffcf22c <xStack+3884>, xTicksToWait=200) at /COMPONENT_ESP_RINGBUF_DIR/ringbuf.c:1111
#5 0x400d8626 in log_backend_fs_thread (arg=0x0) at ./src/app/services/log_backend_fs/log_backend_fs.c:439
#6 0x40099523 in vPortTaskWrapper (pxCode=0x400d83b8 <log_backend_fs_thread>, pvParameters=0x0) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:139
==================== THREAD 10 (TCB: 0x3ffd1960, name: 'BtA2DPTask') =====================
#0 0x00000017 in ?? ()
Backtrace stopped: Cannot access memory at address 0x17
==================== THREAD 11 (TCB: 0x3ffd771c, name: 'uart_rx_task') =====================
#0 0x4000bff0 in ?? ()
#1 0x40099889 in vPortClearInterruptMaskFromISR (prev_level=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:560
#2 vPortExitCritical (mux=0x3ffe24f0) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:514
#3 0x4009747c in prvReceiveGeneric (pxRingbuffer=0x3ffe2488, pvItem1=0x3ffd7f48 <xStack+1724>, pvItem2=0x0, xItemSize1=0x3ffd7f88 <xStack+1788>, xItemSize2=0x0, xMaxSize=1, xTicksToWait=<optimized out>, xTicksToWait@entry=1000) at /COMPONENT_ESP_RINGBUF_DIR/ringbuf.c:885
#4 0x400977eb in xRingbufferReceiveUpTo (xRingbuffer=0x3ffe2488, pxItemSize=0x3ffd7f88 <xStack+1788>, xTicksToWait=1000, xMaxSize=1) at /COMPONENT_ESP_RINGBUF_DIR/ringbuf.c:1182
#5 0x401ca0d1 in uart_read_bytes (uart_num=<optimized out>, buf=0x3ffd7fb4 <xStack+1832>, length=1, ticks_to_wait=1000) at /COMPONENT_ESP_DRIVER_UART_DIR/src/uart.c:1635
#6 0x40104d91 in rx_task (arg=0x0) at ./src/bsp/sherpa_lite/uart/esp32_uart.c:33
#7 0x40099523 in vPortTaskWrapper (pxCode=0x40104d74 <rx_task>, pvParameters=0x0) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:139
==================== THREAD 12 (TCB: 0x3ffc8c28, name: 'i2s_output_task') =====================
#0 0x4000bff0 in ?? ()
#1 0x40099889 in vPortClearInterruptMaskFromISR (prev_level=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:560
#2 vPortExitCritical (mux=0x3ffecdb8) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:514
#3 0x40098add in xQueueReceive (xQueue=0x3ffecd64, pvBuffer=0x3ffecce8, xTicksToWait=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/queue.c:1632
#4 0x401ef33d in i2s_channel_write (handle=0x3ffeccc0, src=<optimized out>, size=980, bytes_written=0x3ffc94cc <s_i2s_output_task_stack+1844>, timeout_ms=<optimized out>) at /COMPONENT_ESP_DRIVER_I2S_DIR/i2s_common.c:1321
#5 0x4010454a in i2s_output_task (arg=0x0) at ./src/bsp/sherpa_lite/i2s/i2s.c:169
#6 0x40099523 in vPortTaskWrapper (pxCode=0x4010446c <i2s_output_task>, pvParameters=0x0) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:139
==================== THREAD 13 (TCB: 0x3ffd0124, name: 'input_hal') =====================
#0 0x4000bff0 in ?? ()
#1 0x40099889 in vPortClearInterruptMaskFromISR (prev_level=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:560
#2 vPortExitCritical (mux=0x3ffde4e4) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:514
#3 0x40098bee in xQueueSemaphoreTake (xQueue=0x3ffde490, xTicksToWait=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/queue.c:1853
#4 0x400e2c74 in input_hal_thread (arg=0x0) at ./src/bsp/sherpa_lite/gpio/input_hal.c:70
#5 0x40099523 in vPortTaskWrapper (pxCode=0x400e2c58 <input_hal_thread>, pvParameters=0x0) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:139
==================== THREAD 14 (TCB: 0x3ffdfc98, name: 'skaa_rx_task') =====================
#0 0x4000bff0 in ?? ()
#1 0x40099889 in vPortClearInterruptMaskFromISR (prev_level=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:560
#2 vPortExitCritical (mux=0x3ffded80) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:514
#3 0x40098add in xQueueReceive (xQueue=0x3ffded2c, pvBuffer=0x3ffdfb44, xTicksToWait=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/queue.c:1632
#4 0x400e5561 in skaa_rx_task (arg=0x0) at ./src/bsp/sherpa_lite/skaa/skaa_sm.c:282
#5 0x40099523 in vPortTaskWrapper (pxCode=0x400e5540 <skaa_rx_task>, pvParameters=0x0) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:139
==================== THREAD 15 (TCB: 0x3ffdfe1c, name: 'skaa_tx_task') =====================
#0 0x4000bff0 in ?? ()
#1 0x40099889 in vPortClearInterruptMaskFromISR (prev_level=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:560
#2 vPortExitCritical (mux=0x3ffdec0c) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:514
#3 0x40098add in xQueueReceive (xQueue=0x3ffdebb8, pvBuffer=0x3ffe1fb4, xTicksToWait=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/queue.c:1632
#4 0x400e57c8 in skaa_tx_task (arg=0x0) at ./src/bsp/sherpa_lite/skaa/skaa_sm.c:410
#5 0x40099523 in vPortTaskWrapper (pxCode=0x400e57ac <skaa_tx_task>, pvParameters=0x0) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:139
==================== THREAD 16 (TCB: 0x3ffe6834, name: 'console_repl') =====================
#0 0x4000bff0 in ?? ()
#1 0x40099889 in vPortClearInterruptMaskFromISR (prev_level=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:560
#2 vPortExitCritical (mux=0x3ffe5270) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:514
#3 0x4009747c in prvReceiveGeneric (pxRingbuffer=0x3ffe5208, pvItem1=0x3ffe6388, pvItem2=0x0, xItemSize1=0x3ffe63c8, xItemSize2=0x0, xMaxSize=1, xTicksToWait=<optimized out>, xTicksToWait@entry=4294967295) at /COMPONENT_ESP_RINGBUF_DIR/ringbuf.c:885
#4 0x400977eb in xRingbufferReceiveUpTo (xRingbuffer=0x3ffe5208, pxItemSize=0x3ffe63c8, xTicksToWait=4294967295, xMaxSize=1) at /COMPONENT_ESP_RINGBUF_DIR/ringbuf.c:1182
#5 0x401ca0d1 in uart_read_bytes (uart_num=<optimized out>, buf=0x3ffe63fb, length=1, ticks_to_wait=4294967295) at /COMPONENT_ESP_DRIVER_UART_DIR/src/uart.c:1635
#6 0x401cb0cc in uart_rx_char_via_driver (fd=0) at /COMPONENT_ESP_DRIVER_UART_DIR/src/uart_vfs.c:219
#7 0x401cb3dc in uart_read_char (fd=0) at /COMPONENT_ESP_DRIVER_UART_DIR/src/uart_vfs.c:263
#8 uart_read (fd=0, data=0x3ffe65c4, size=1) at /COMPONENT_ESP_DRIVER_UART_DIR/src/uart_vfs.c:283
#9 0x401cbcb9 in esp_vfs_read (r=0x3ffe68ac, fd=<optimized out>, dst=0x3ffe65c4, size=1) at /COMPONENT_VFS_DIR/vfs.c:1008
#10 0x4000bdbe in ?? ()
#11 0x400017ed in ?? ()
#12 0x401ecc14 in console_read (fd=<optimized out>, dst=0x3ffe65c4, size=1) at /COMPONENT_ESP_VFS_CONSOLE_DIR/vfs_console.c:119
#13 0x401cbcb9 in esp_vfs_read (r=0x3ffe68ac, fd=<optimized out>, dst=0x3ffe65c4, size=1) at /COMPONENT_VFS_DIR/vfs.c:1008
#14 0x4000bdbe in ?? ()
#15 0x400017ed in ?? ()
#16 0x40110fbc in linenoiseDumb (buf=0x3ffed1dc <error: Cannot access memory at address 0x3ffed1dc>, buflen=1024, prompt=<optimized out>) at /COMPONENT_CONSOLE_DIR/linenoise/linenoise.c:1171
#17 linenoise (prompt=<optimized out>) at /COMPONENT_CONSOLE_DIR/linenoise/linenoise.c:1227
#18 0x4010f51b in esp_console_repl_task (args=0x3ffe2ff4) at /COMPONENT_CONSOLE_DIR/esp_console_common.c:206
#19 0x40099523 in vPortTaskWrapper (pxCode=0x4010f42c <esp_console_repl_task>, pvParameters=0x3ffe2ff4) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:139
==================== THREAD 17 (TCB: 0x3ffb9d0c, name: 'ipc1') =====================
#0 0x4000bff0 in ?? ()
#1 0x40099889 in vPortClearInterruptMaskFromISR (prev_level=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:560
#2 vPortExitCritical (mux=0x3ffbf29c <xKernelLock>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:514
#3 0x4009c13d in ulTaskGenericNotifyTake (uxIndexToWait=<optimized out>, xClearCountOnExit=1, xTicksToWait=4294967295) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/tasks.c:5768
#4 0x4008c256 in ipc_task (arg=0x1) at /COMPONENT_ESP_SYSTEM_DIR/esp_ipc.c:62
#5 0x40099523 in vPortTaskWrapper (pxCode=0x4008c208 <ipc_task>, pvParameters=0x1) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:139
==================== THREAD 18 (TCB: 0x3ffbaf94, name: 'esp_timer') =====================
#0 0x4000bff0 in ?? ()
#1 0x40099889 in vPortClearInterruptMaskFromISR (prev_level=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:560
#2 vPortExitCritical (mux=0x3ffbf29c <xKernelLock>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:514
#3 0x4009c13d in ulTaskGenericNotifyTake (uxIndexToWait=<optimized out>, xClearCountOnExit=1, xTicksToWait=4294967295) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/tasks.c:5768
#4 0x401c31cc in timer_task (arg=<optimized out>) at /COMPONENT_ESP_TIMER_DIR/src/esp_timer.c:459
#5 0x40099523 in vPortTaskWrapper (pxCode=0x401c31a4 <timer_task>, pvParameters=0x0) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:139
==================== THREAD 19 (TCB: 0x3ffb7530, name: 'ipc0') =====================
#0 0x4000bff0 in ?? ()
#1 0x40099889 in vPortClearInterruptMaskFromISR (prev_level=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:560
#2 vPortExitCritical (mux=0x3ffbf29c <xKernelLock>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:514
#3 0x4009c13d in ulTaskGenericNotifyTake (uxIndexToWait=<optimized out>, xClearCountOnExit=1, xTicksToWait=4294967295) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/tasks.c:5768
#4 0x4008c256 in ipc_task (arg=0x0) at /COMPONENT_ESP_SYSTEM_DIR/esp_ipc.c:62
#5 0x40099523 in vPortTaskWrapper (pxCode=0x4008c208 <ipc_task>, pvParameters=0x0) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:139
==================== THREAD 20 (TCB: 0x3ffc006c, name: 'app_wq') =====================
#0 0x4000bff0 in ?? ()
#1 0x40099889 in vPortClearInterruptMaskFromISR (prev_level=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:560
#2 vPortExitCritical (mux=0x3ffbff60 <s_work_queue_struct+84>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:514
#3 0x40098add in xQueueReceive (xQueue=0x3ffbff0c <s_work_queue_struct>, pvBuffer=0x3ffc1d00 <s_worker_task_stack+6948>, xTicksToWait=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/queue.c:1632
#4 0x400d9b35 in app_work_queue_thread (arg=0x0) at ./src/app/services/app_work_queue/app_work_queue.c:45
#5 0x40099523 in vPortTaskWrapper (pxCode=0x400d9b1c <app_work_queue_thread>, pvParameters=0x0) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:139
==================== THREAD 21 (TCB: 0x3ffddbbc, name: 'sys_evt') =====================
#0 0x4000bff0 in ?? ()
#1 0x40099889 in vPortClearInterruptMaskFromISR (prev_level=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:560
#2 vPortExitCritical (mux=0x3ffdca9c) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:514
#3 0x40098add in xQueueReceive (xQueue=0x3ffdca48, pvBuffer=0x3ffdda4c, xTicksToWait=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/queue.c:1632
#4 0x401cfac8 in esp_event_loop_run (event_loop=<optimized out>, ticks_to_run=4294967295) at /COMPONENT_ESP_EVENT_DIR/esp_event.c:644
#5 0x401cfb00 in esp_event_loop_run_task (args=0x3ffdca14) at /COMPONENT_ESP_EVENT_DIR/esp_event.c:106
#6 0x40099523 in vPortTaskWrapper (pxCode=0x401cfae8 <esp_event_loop_run_task>, pvParameters=0x3ffdca14) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:139
==================== THREAD 22 (TCB: 0x3ffd4550, name: 'volume_task') =====================
#0 0x4000bff0 in ?? ()
#1 0x40099889 in vPortClearInterruptMaskFromISR (prev_level=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:560
#2 vPortExitCritical (mux=0x3ffe6ae4) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:514
#3 0x40098add in xQueueReceive (xQueue=0x3ffe6a90, pvBuffer=0x3ffd4fe2 <xStack+2338>, xTicksToWait=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/queue.c:1632
#4 0x400ee34d in volume_task (arg=0x0) at ./src/app/services/volume/volume.c:187
#5 0x40099523 in vPortTaskWrapper (pxCode=0x400ee2d0 <volume_task>, pvParameters=0x0) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:139
==================== THREAD 23 (TCB: 0x3ffcd400, name: 'log_processor') =====================
#0 0x4000bff0 in ?? ()
#1 0x40099889 in vPortClearInterruptMaskFromISR (prev_level=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:560
#2 vPortExitCritical (mux=0x3ffe0654) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:514
#3 0x4009747c in prvReceiveGeneric (pxRingbuffer=0x3ffe05ec, pvItem1=0x3ffcdfe8 <xStack+2680>, pvItem2=0x0, xItemSize1=0x3ffce098 <xStack+2856>, xItemSize2=0x0, xMaxSize=0, xTicksToWait=<optimized out>, xTicksToWait@entry=4294967295) at /COMPONENT_ESP_RINGBUF_DIR/ringbuf.c:885
#4 0x4009770e in xRingbufferReceive (xRingbuffer=0x3ffe05ec, pxItemSize=0x3ffce098 <xStack+2856>, xTicksToWait=4294967295) at /COMPONENT_ESP_RINGBUF_DIR/ringbuf.c:1111
#5 0x400d5f68 in log_processor_task (pvParameters=0x0) at ./src/app/services/logging/log_processor.c:42
#6 0x40099523 in vPortTaskWrapper (pxCode=0x400d5f30 <log_processor_task>, pvParameters=0x0) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:139
==================== THREAD 24 (TCB: 0x3ffbd574, name: 'Tmr Svc') =====================
#0 0x4000bff0 in ?? ()
#1 0x40099889 in vPortClearInterruptMaskFromISR (prev_level=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:560
#2 vPortExitCritical (mux=0x3ffbf3c0 <reason_spinlock>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:514
#3 0x4008c154 in esp_crosscore_int_send (core_id=0, reason_mask=1) at /COMPONENT_ESP_SYSTEM_DIR/crosscore_int.c:118
#4 0x4008c19b in esp_crosscore_int_send_yield (core_id=0) at /COMPONENT_ESP_SYSTEM_DIR/crosscore_int.c:125
#5 0x4009911d in prvProcessTimerOrBlockTask (xNextExpireTime=<optimized out>, xListWasEmpty=<optimized out>) at /COMPONENT_XTENSA_DIR/include/xt_utils.h:41
#6 prvTimerTask (pvParameters=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/timers.c:685
#7 0x40099523 in vPortTaskWrapper (pxCode=0x4009906c <prvTimerTask>, pvParameters=0x0) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:139
==================== THREAD 25 (TCB: 0x3fff2588, name: 'hciT') =====================
#0 0x4000bff0 in ?? ()
#1 0x40099889 in vPortClearInterruptMaskFromISR (prev_level=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:560
#2 vPortExitCritical (mux=0x3fff1a14) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:514
#3 0x40098bee in xQueueSemaphoreTake (xQueue=0x3fff19c0, xTicksToWait=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/queue.c:1853
#4 0x401551e4 in osi_sem_take (sem=0x3f809b98, timeout=4294967295) at /COMPONENT_BT_DIR/common/osi/semaphore.c:60
#5 0x40154b69 in osi_thread_run (arg=<optimized out>) at /COMPONENT_BT_DIR/common/osi/thread.c:156
#6 0x40099523 in vPortTaskWrapper (pxCode=0x40154b44 <osi_thread_run>, pvParameters=0x3fff0ef0) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:139
==================== THREAD 26 (TCB: 0x3fff430c, name: 'BTU_TASK') =====================
#0 0x4000bff0 in ?? ()
#1 0x40099889 in vPortClearInterruptMaskFromISR (prev_level=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:560
#2 vPortExitCritical (mux=0x3fff2e18) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:514
#3 0x40098bee in xQueueSemaphoreTake (xQueue=0x3fff2dc4, xTicksToWait=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/queue.c:1853
#4 0x401551e4 in osi_sem_take (sem=0x3f809fa4, timeout=4294967295) at /COMPONENT_BT_DIR/common/osi/semaphore.c:60
#5 0x40154b69 in osi_thread_run (arg=<optimized out>) at /COMPONENT_BT_DIR/common/osi/thread.c:156
#6 0x40099523 in vPortTaskWrapper (pxCode=0x40154b44 <osi_thread_run>, pvParameters=0x3fff0ef0) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:139
==================== THREAD 27 (TCB: 0x3fff1244, name: 'BTC_TASK') =====================
#0 0x4000bff0 in ?? ()
#1 0x40099889 in vPortClearInterruptMaskFromISR (prev_level=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/include/freertos/portmacro.h:560
#2 vPortExitCritical (mux=0x3ffed1ac) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:514
#3 0x40098bee in xQueueSemaphoreTake (xQueue=0x3ffed158, xTicksToWait=<optimized out>) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/queue.c:1853
#4 0x401551e4 in osi_sem_take (sem=0x3f807d10, timeout=4294967295) at /COMPONENT_BT_DIR/common/osi/semaphore.c:60
#5 0x40154b69 in osi_thread_run (arg=<optimized out>) at /COMPONENT_BT_DIR/common/osi/thread.c:156
#6 0x40099523 in vPortTaskWrapper (pxCode=0x40154b44 <osi_thread_run>, pvParameters=0x3ffbc460) at /COMPONENT_FREERTOS_DIR/FreeRTOS-Kernel/portable/xtensa/port.c:139
======================= ALL MEMORY REGIONS ========================
Name Address Size Attrs
.rtc.text 0x400c0000 0x0 RW
.rtc.dummy 0x3ff80000 0x0 RW
.rtc.force_fast 0x3ff80000 0x0 RW
.rtc_noinit 0x50000000 0x0 RW
.rtc.force_slow 0x50000000 0xb0 RWXA
.rtc_fast_reserved 0x3ff82000 0x0 RW
.iram0.vectors 0x40080000 0x404 R XA
.iram0.text 0x40080404 0x23d77 R XA
.dram0.data 0x3ffbdb60 0xf768 RW A
.dram0.data 0x3ffbdb60 0xf768 RW A
.ext_ram_noinit 0x3f800000 0x0 RW
.flash.appdesc 0x3f400020 0x100 R A
.flash.rodata 0x3f400120 0x34864 RW A
.flash.text 0x400d0020 0x149e57 R XA
.iram0.data 0x400a417c 0x0 RW
.iram0.bss 0x400a417c 0x0 RW
.dram0.heap_start 0x3ffda5e8 0x0 RW
.coredump.tasks.data 0x3ffec710 0x170 RW
.coredump.tasks.data 0x20000000 0x70 RW
.coredump.tasks.data 0x3ffbc964 0x170 RW
.coredump.tasks.data 0x3ffbc5d0 0x280 RW
.coredump.tasks.data 0x3ffbd26c 0x170 RW
.coredump.tasks.data 0x3ffbd040 0x1e0 RW
.coredump.tasks.data 0x3ffbd3f0 0x170 RW
.coredump.tasks.data 0x3ffdae20 0x1e0 RW
.coredump.tasks.data 0x3ffd0ad0 0x170 RW
.coredump.tasks.data 0x3ffd15e0 0x250 RW
.coredump.tasks.data 0x3ffcf7ac 0x170 RW
.coredump.tasks.data 0x3ffcfee0 0x230 RW
.coredump.tasks.data 0x3ffd50d0 0x170 RW
.coredump.tasks.data 0x3ffd5810 0x220 RW
.coredump.tasks.data 0x3ffd66b4 0x170 RW
.coredump.tasks.data 0x3ffd71c0 0x260 RW
.coredump.tasks.data 0x3ffce190 0x170 RW
.coredump.tasks.data 0x3ffcf040 0x2b0 RW
.coredump.tasks.data 0x3ffd1960 0x170 RW
.coredump.tasks.data 0x3ffd28a0 0x220 RW
.coredump.tasks.data 0x3ffd771c 0x170 RW
.coredump.tasks.data 0x3ffd7de0 0x2a0 RW
.coredump.tasks.data 0x3ffc92f0 0x2a0 RW
.coredump.tasks.data 0x3ffd0124 0x170 RW
.coredump.tasks.data 0x3ffd0890 0x200 RW
.coredump.tasks.data 0x3ffdfc98 0x170 RW
.coredump.tasks.data 0x3ffdf9f0 0x220 RW
.coredump.tasks.data 0x3ffdfe1c 0x170 RW
.coredump.tasks.data 0x3ffe1e20 0x280 RW
.coredump.tasks.data 0x3ffe6834 0x170 RW
.coredump.tasks.data 0x3ffe6220 0x500 RW
.coredump.tasks.data 0x3ffb9d0c 0x170 RW
.coredump.tasks.data 0x3ffb7cb0 0x200 RW
.coredump.tasks.data 0x3ffbaf94 0x170 RW
.coredump.tasks.data 0x3ffbac70 0x210 RW
.coredump.tasks.data 0x3ffb7530 0x170 RW
.coredump.tasks.data 0x3ffb7220 0x200 RW
.coredump.tasks.data 0x3ffc1bc0 0x210 RW
.coredump.tasks.data 0x3ffddbbc 0x170 RW
.coredump.tasks.data 0x3ffdd8f0 0x250 RW
.coredump.tasks.data 0x3ffd4550 0x170 RW
.coredump.tasks.data 0x3ffd4e90 0x220 RW
.coredump.tasks.data 0x3ffcd400 0x170 RW
.coredump.tasks.data 0x3ffcde80 0x2e0 RW
.coredump.tasks.data 0x3ffbd574 0x170 RW
.coredump.tasks.data 0x3ffdba10 0x240 RW
.coredump.tasks.data 0x3fff2588 0x170 RW
.coredump.tasks.data 0x3fff22d0 0x230 RW
.coredump.tasks.data 0x3fff430c 0x170 RW
.coredump.tasks.data 0x3fff3fd0 0x230 RW
.coredump.tasks.data 0x3fff1244 0x170 RW
.coredump.tasks.data 0x3fff0e70 0x230 RW
===================== ESP32 CORE DUMP END =====================
===============================================================
Done!
We're a bit at a loss for where to start looking. We've got most the following sdkconfig options (and a lot more, just a snippet of safety features) enabled:
Code: Select all
CONFIG_HEAP_POISONING_COMPREHENSIVE=y
CONFIG_COMPILER_STACK_CHECK_MODE_ALL=y
CONFIG_COMPILER_STACK_CHECK=y
...
CONFIG_BT_ALLOCATION_FROM_SPIRAM_FIRST=y
Attached is a number of the coredumps that we've gotten over trying to debug the issue.
Interestingly, one of the crashes seemed to instead be in the r_rwbtdm_isr_wrapper.
Any pointers to where to start looking or related experiences are appreciated!