I don't understand why there would be any interaction between spi_flash_ll_cmd_is_done() and _xt_medint2() and i2s_intr_handler_default() as seen in the stack trace.
It occurs when I start a wifi task to connect as client, while also having an audio pipeline started. The pipeline uses I2S for audio to an external codec.
If I don't start wifi there is no crash. The crash occurs when the wifi driver calls some NVS operation and SPI flash read/write on an ESP32-WROVER-IE
Code: Select all
I (3593) AUDIO_ELEMENT: [hfpr] AEL_MSG_CMD_RESUME,state:1
I (3593) hfpr: Open
I (3593) hfpr: HFP ringbuf in = 0B, out = 4096B
I (3603) wifi:wifi driver task: 3ffef7e0, prio:23, stack:6656, core=0
I (3613) AUDIO_ELEMENT: [gate] AEL_MSG_CMD_RESUME,state:1
I (3613) gate: Open
I (3613) gate: ringbuf in =Guru Meditation Error: Core 0 panic'ed (Cache disabled but cached memory region accessed).
Core 0 register dump:
PC : 0x4008d699 PS : 0x00050035 A0 : 0x40083320 A1 : 0x3ffc01c0
A2 : 0x3f805ff0 A3 : 0xbad00bad A4 : 0x3ff42000 A5 : 0x400949b2
A6 : 0x3ff42000 A7 : 0x01002000 A8 : 0x00000000 A9 : 0x00000002
A10 : 0x0000007e A11 : 0x3ffef504 A12 : 0x01000000 A13 : 0x00002000
A14 : 0x00000001 A15 : 0x3ffcf91c SAR : 0x00000018 EXCCAUSE: 0x00000007
EXCVADDR: 0x00000000 LBEG : 0x4000c46c LEND : 0x4000c477 LCOUNT : 0x00000000
Backtrace: 0x4008d696:0x3ffc01c0 0x4008331d:0x3ffc01f0 0x40096f69:0x3ffef320 0x40096d86:0x3ffef340 0x4009a231:0x3ffef360 0x4008e7ef:0x3ffef3e0 0x40129872:0x3ffef420 0x4012f8b7:0x3ffef450 0x401a6aa6:0x3ffef470 0x40130612:0x3ffef490 0x4013088e:0x3ffef4f0 0x4012ed29:0x3ffef580 0x4012f735:0x3ffef5e0 0x401a66a9:0x3ffef600 0x4012e77f:0x3ffef620 0x4012e795:0x3ffef650 0x40159411:0x3ffef670 0x401596cf:0x3ffef6b0 0x40156ab6:0x3ffef6d0 0x40154ef2:0x3ffef700 0x401ab32d:0x3ffef720 0x40094e8e:0x3ffef750
Code: Select all
0x4008d696: i2s_ll_get_intr_status at C:/Espressif/frameworks/esp-idf/components/hal/esp32/include/hal/i2s_ll.h:428
(inlined by) i2s_intr_handler_default at C:/Espressif/frameworks/esp-idf/components/driver/deprecated/i2s_legacy.c:230
0x4008331d: _xt_medint2 at C:/Espressif/frameworks/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/xtensa_vectors.S:1325
0x40096f69: spi_flash_ll_cmd_is_done at C:/Espressif/frameworks/esp-idf/components/hal/esp32/include/hal/spi_flash_ll.h:77 (discriminator 1)
(inlined by) spi_flash_hal_poll_cmd_done at C:/Espressif/frameworks/esp-idf/components/hal/spi_flash_hal_common.inc:38 (discriminator 1)
0x40096d86: spi_flash_hal_read at C:/Espressif/frameworks/esp-idf/components/hal/spi_flash_hal_common.inc:190
0x4009a231: spi_flash_chip_winbond_read at C:/Espressif/frameworks/esp-idf/components/spi_flash/spi_flash_chip_winbond.c:69
0x4008e7ef: esp_flash_read at C:/Espressif/frameworks/esp-idf/components/spi_flash/esp_flash_api.c:898 (discriminator 4)
0x40129872: esp_partition_read at C:/Espressif/frameworks/esp-idf/components/esp_partition/partition_target.c:38
0x4012f8b7: nvs::NVSPartition::read(unsigned int, void*, unsigned int) at C:/Espressif/frameworks/esp-idf/components/nvs_flash/src/nvs_partition.cpp:45
0x401a6aa6: nvs::Page::readEntry(unsigned int, nvs::Item&) const at C:/Espressif/frameworks/esp-idf/components/nvs_flash/src/nvs_page.cpp:853
0x40130612: nvs::Page::findItem(unsigned char, nvs::ItemType, char const*, unsigned int&, nvs::Item&, unsigned char, nvs::VerOffset) at C:/Espressif/frameworks/esp-idf/components/nvs_flash/src/nvs_page.cpp:903
0x4013088e: nvs::Page::readItem(unsigned char, nvs::ItemType, char const*, void*, unsigned int, unsigned char, nvs::VerOffset) at C:/Espressif/frameworks/esp-idf/components/nvs_flash/src/nvs_page.cpp:258
0x4012ed29: nvs::Storage::readItem(unsigned char, nvs::ItemType, char const*, void*, unsigned int) at C:/Espressif/frameworks/esp-idf/components/nvs_flash/src/nvs_storage.cpp:570
0x4012f735: nvs::NVSHandleSimple::get_typed_item(nvs::ItemType, char const*, void*, unsigned int) at C:/Espressif/frameworks/esp-idf/components/nvs_flash/src/nvs_handle_simple.cpp:36
0x401a66a9: int nvs::NVSHandle::get_item<unsigned char>(char const*, unsigned char&) at C:/Espressif/frameworks/esp-idf/components/nvs_flash/include/nvs_handle.hpp:275
0x4012e77f: int nvs_get<unsigned char>(unsigned long, char const*, unsigned char*) at C:/Espressif/frameworks/esp-idf/components/nvs_flash/src/nvs_api.cpp:440
0x4012e795: nvs_get_u8 at C:/Espressif/frameworks/esp-idf/components/nvs_flash/src/nvs_api.cpp:450
0x40159411: wifi_nvs_validate_sta_listen_interval at ??:?
0x401596cf: wifi_nvs_init at ??:?
0x40156ab6: wifi_init_process at ??:?
0x40154ef2: ieee80211_ioctl_process at ??:?
0x401ab32d: ppTask at ??:?
0x40094e8e: vPortTaskWrapper at C:/Espressif/frameworks/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:162