Open
Description
Board
ESP32-S3
Device Description
ESP32-S3-WROOM-1
Hardware Configuration
#define INMP441_WS 5
#define INMP441_BCLK 4
#define INMP441_DIN 6
Version
latest master (checkout manually)
IDE Name
VSCode
Operating System
Windows 11
Flash frequency
80MHz
PSRAM enabled
yes
Upload speed
460800
Description
The board raise panicHandler when performing ESP_SR.begin -> sr_start -> esp_srmodel_init -> srmodel_mmap_init -> srmodel_load -> get_model_info.
After hours of tracking, this happens when loading wn9_hiesp. It seems that accessing the MODEL_INFO part of it caused the panic. Maybe "data" in "get_model_info" is a nullptr?
Sketch
// #include "my_spiffs.h" #include <Arduino.h> #include "ESP_I2S.h" #include "ESP_SR.h" #if defined(ARDUINO_ARCH_ESP32) && defined(CONFIG_ARDUHAL_ESP_LOG) #include "esp32-hal-log.h" #define TAG "" #else #include "esp_log.h" static const char *TAG = "main"; #endif #define INMP441_WS 5 #define INMP441_BCLK 4 #define INMP441_DIN 6 I2SClass i2s; enum { SR_CMD_HELLO, }; static const sr_cmd_t sr_commands[] = { {0, "Turn on the light", "TkN nN jc LiT"}, }; void onSrEvent(sr_event_t event, int command_id, int phrase_id) { switch (event) { case SR_EVENT_WAKEWORD: Serial.println("WakeWord Detected!"); break; case SR_EVENT_WAKEWORD_CHANNEL: Serial.printf("WakeWord Channel %d Verified!\n", command_id); ESP_SR.setMode(SR_MODE_COMMAND); // Switch to Command detection break; case SR_EVENT_TIMEOUT: Serial.println("Timeout Detected!"); ESP_SR.setMode(SR_MODE_WAKEWORD); // Switch back to WakeWord detection break; case SR_EVENT_COMMAND: Serial.printf("Command %d Detected! %s\n", command_id, sr_commands[phrase_id].str); switch (command_id) { case SR_CMD_HELLO: Serial.println("Hello, world!"); break; default: Serial.println("Unknown Command!"); break; } ESP_SR.setMode(SR_MODE_COMMAND); // Allow for more commands to be given, before timeout // ESP_SR.setMode(SR_MODE_WAKEWORD); // Switch back to WakeWord detection break; default: Serial.println("Unknown Event!"); break; } } void setup(void) { ESP_LOGE(TAG, "Hello, world!"); Serial.begin(115200); // Serial.printf("ijWDSNNQASDJLAKSJDSAKJD"); // bsp_spiffs_mount(); i2s.setPins(INMP441_BCLK, INMP441_WS, -1, INMP441_DIN); i2s.setTimeout(1000); i2s.begin(I2S_MODE_STD, 16000, I2S_DATA_BIT_WIDTH_16BIT, I2S_SLOT_MODE_STEREO); ESP_SR.onEvent(onSrEvent); ESP_SR.begin(i2s, sr_commands, sizeof(sr_commands) / sizeof(sr_cmd_t), SR_CHANNELS_STEREO, SR_MODE_WAKEWORD); } void loop() { // Serial.println("Hello, world!"); // printf("Hello, world!\n"); // delay(1000); }
Debug Message
I (31) boot: ESP-IDF v5.1.4 2nd stage bootloader I (31) boot: compile time Dec 6 2024 13:40:48 I (31) boot: Multicore bootloader I (34) boot: chip revision: v0.2 I (38) qio_mode: Enabling default flash chip QIO I (43) boot.esp32s3: Boot SPI Speed : 80MHz I (48) boot.esp32s3: SPI Mode : QIO I (53) boot.esp32s3: SPI Flash Size : 16MB W (58) boot.esp32s3: PRO CPU has been reset by WDT. W (63) boot.esp32s3: APP CPU has been reset by WDT. I (69) boot: Enabling RNG early entropy source... I (74) boot: Partition Table: I (78) boot: ## Label Usage Type ST Offset Length I (85) boot: 0 nvs WiFi data 01 02 00009000 00005000 I (93) boot: 1 otadata OTA data 01 00 0000e000 00002000 I (100) boot: 2 app0 OTA app 00 10 00010000 00300000 I (108) boot: 3 app1 OTA app 00 11 00310000 00300000 I (115) boot: 4 spiffs Unknown data 01 82 00610000 00700000 I (123) boot: 5 model Unknown data 01 82 00d10000 002e0000 I (130) boot: 6 coredump Unknown data 01 03 00ff0000 00010000 I (138) boot: End of partition table I (142) esp_image: segment 0: paddr=00010020 vaddr=3c080020 size=b2cd8h (732376) map I (262) esp_image: segment 1: paddr=000c2d00 vaddr=3fc96400 size=057c8h ( 22472) load I (266) esp_image: segment 2: paddr=000c84d0 vaddr=40374000 size=07b48h ( 31560) load I (274) esp_image: segment 3: paddr=000d0020 vaddr=42000020 size=76754h (485204) map I (349) esp_image: segment 4: paddr=0014677c vaddr=4037bb48 size=0a810h ( 43024) load I (366) boot: Loaded app from partition at offset 0x10000 I (366) boot: Disabling RNG early entropy source... I (377) cpu_start: Multicore app I (378) octal_psram: vendor id : 0x0d (AP) I (378) octal_psram: dev id : 0x02 (generation 3) I (381) octal_psram: density : 0x03 (64 Mbit) I (387) octal_psram: good-die : 0x01 (Pass) I (392) octal_psram: Latency : 0x01 (Fixed) I (397) octal_psram: VCC : 0x01 (3V) I (402) octal_psram: SRF : 0x01 (Fast Refresh) I (408) octal_psram: BurstType : 0x01 (Hybrid Wrap) I (414) octal_psram: BurstLen : 0x01 (32 Byte) I (419) octal_psram: Readlatency : 0x02 (10 cycles@Fixed) I (425) octal_psram: DriveStrength: 0x00 (1/1) I (431) MSPI Timing: PSRAM timing tuning index: 5 I (436) esp_psram: Found 8MB PSRAM device I (441) esp_psram: Speed: 80MHz I (445) cpu_start: Pro cpu up. I (448) cpu_start: Starting app cpu, entry point is 0x40375740 0x40375740: call_start_cpu1 at C:/Users/qianj/esp/v5.1.4/esp-idf/components/esp_system/port/cpu_start.c:159 I (0) cpu_start: App cpu up. I (907) esp_psram: SPI SRAM memory test OK I (916) cpu_start: Pro cpu start user code I (916) cpu_start: cpu freq: 240000000 Hz I (916) cpu_start: Application information: I (919) cpu_start: Project name: dokoDrawer_esp32 I (925) cpu_start: App version: 50edeac-dirty I (930) cpu_start: Compile time: Dec 6 2024 14:09:41 I (936) cpu_start: ELF file SHA256: b480f69c7616a4c0... I (942) cpu_start: ESP-IDF: v5.1.4 I (947) cpu_start: Min chip rev: v0.0 I (952) cpu_start: Max chip rev: v0.99 I (957) cpu_start: Chip rev: v0.2 I (961) heap_init: Initializing. RAM available for dynamic allocation: I (969) heap_init: At 3FC9D448 len 0004C2C8 (304 KiB): DRAM I (975) heap_init: At 3FCE9710 len 00005724 (21 KiB): STACK/DRAM I (981) heap_init: At 3FCF0000 len 00008000 (32 KiB): DRAM I (988) heap_init: At 600FE010 len 00001FD8 (7 KiB): RTCRAM I (994) esp_psram: Adding pool of 8192K of PSRAM memory to heap allocator I (1002) spi_flash: detected chip: boya I (1006) spi_flash: flash io: qio [ 1010][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_RX (2) successfully set to 0x4200e820 0x4200e820: _uartDetachBus_RX at C:/Users/qianj/esp/v5.1.4/esp-idf/components/arduino-esp32/cores/esp32/esp32-hal-uart.c:153 [ 1033][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_TX (3) successfully set to 0x4200e7ec 0x4200e7ec: _uartDetachBus_TX at C:/Users/qianj/esp/v5.1.4/esp-idf/components/arduino-esp32/cores/esp32/esp32-hal-uart.c:160 [ 1046][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_CTS (4) successfully set to 0x4200e7b8 0x4200e7b8: _uartDetachBus_CTS at C:/Users/qianj/esp/v5.1.4/esp-idf/components/arduino-esp32/cores/esp32/esp32-hal-uart.c:167 [ 1058][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_RTS (5) successfully set to 0x4200e784 0x4200e784: _uartDetachBus_RTS at C:/Users/qianj/esp/v5.1.4/esp-idf/components/arduino-esp32/cores/esp32/esp32-hal-uart.c:174 [ 1070][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_RX (2) successfully set to 0x4200e820 0x4200e820: _uartDetachBus_RX at C:/Users/qianj/esp/v5.1.4/esp-idf/components/arduino-esp32/cores/esp32/esp32-hal-uart.c:153 [ 1082][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_TX (3) successfully set to 0x4200e7ec 0x4200e7ec: _uartDetachBus_TX at C:/Users/qianj/esp/v5.1.4/esp-idf/components/arduino-esp32/cores/esp32/esp32-hal-uart.c:160 [ 1095][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_CTS (4) successfully set to 0x4200e7b8 0x4200e7b8: _uartDetachBus_CTS at C:/Users/qianj/esp/v5.1.4/esp-idf/components/arduino-esp32/cores/esp32/esp32-hal-uart.c:167 [ 1107][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_RTS (5) successfully set to 0x4200e784 0x4200e784: _uartDetachBus_RTS at C:/Users/qianj/esp/v5.1.4/esp-idf/components/arduino-esp32/cores/esp32/esp32-hal-uart.c:174 [ 1119][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_RX (2) successfully set to 0x4200e820 0x4200e820: _uartDetachBus_RX at C:/Users/qianj/esp/v5.1.4/esp-idf/components/arduino-esp32/cores/esp32/esp32-hal-uart.c:153 [ 1131][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_TX (3) successfully set to 0x4200e7ec 0x4200e7ec: _uartDetachBus_TX at C:/Users/qianj/esp/v5.1.4/esp-idf/components/arduino-esp32/cores/esp32/esp32-hal-uart.c:160 [ 1144][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_CTS (4) successfully set to 0x4200e7b8 0x4200e7b8: _uartDetachBus_CTS at C:/Users/qianj/esp/v5.1.4/esp-idf/components/arduino-esp32/cores/esp32/esp32-hal-uart.c:167 [ 1156][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type UART_RTS (5) successfully set to 0x4200e784 0x4200e784: _uartDetachBus_RTS at C:/Users/qianj/esp/v5.1.4/esp-idf/components/arduino-esp32/cores/esp32/esp32-hal-uart.c:174 I (1168) sleep: Configure to isolate all GPIO pins in sleep state I (1169) sleep: Enable automatic switching of GPIO sleep configuration I (1171) esp_core_dump_uart: Init core dump to UART I (1177) coexist: coex firmware version: d96c1e51f I (1182) coexist: coexist rom version e7ae62f I (1187) app_start: Starting scheduler on CPU0 I (1192) app_start: Starting scheduler on CPU1 I (1192) main_task: Started on CPU0 I (1202) esp_psram: Reserving pool of 32K of internal memory for DMA/internal allocations I (1210) main_task: Calling app_main() I (1220) main_task: Returned from app_main() [ 1221][V][esp32-hal-periman.c:160] perimanSetPinBus(): Pin 44 successfully set to type UART_RX (2) with bus 0x3fc96794 [ 1243][V][esp32-hal-periman.c:160] perimanSetPinBus(): Pin 43 successfully set to type UART_TX (3) with bus 0x3fc96794 =========== Before Setup Start =========== Chip Info: ------------------------------------------ Model : ESP32-S3 Package : 0 Revision : 2 Cores : 2 CPU Frequency : 240 MHz XTAL Frequency : 40 MHz Features Bitfield : 0x00000012 Embedded Flash : No Embedded PSRAM : No 2.4GHz WiFi : Yes Classic BT : No BT Low Energy : Yes IEEE 802.15.4 : No ------------------------------------------ INTERNAL Memory Info: ------------------------------------------ Total Size : 408003 B ( 398.4 KB) Free Bytes : 340295 B ( 332.3 KB) Allocated Bytes : 63056 B ( 61.6 KB) Minimum Free Bytes: 335807 B ( 327.9 KB) Largest Free Block: 241664 B ( 236.0 KB) ------------------------------------------ Flash Info: ------------------------------------------ Chip Size : 16777216 B (16 MB) Block Size : 65536 B ( 64.0 KB) Sector Size : 4096 B ( 4.0 KB) Page Size : 256 B ( 0.2 KB) Bus Speed : 80 MHz Bus Mode : QIO ------------------------------------------ Partitions Info: ------------------------------------------ nvs : addr: 0x00009000, size: 20.0 KB, type: DATA, subtype: NVS otadata : addr: 0x0000E000, size: 8.0 KB, type: DATA, subtype: OTA app0 : addr: 0x00010000, size: 3072.0 KB, type: APP, subtype: OTA_0 app1 : addr: 0x00310000, size: 3072.0 KB, type: APP, subtype: OTA_1 spiffs : addr: 0x00610000, size: 7168.0 KB, type: DATA, subtype: SPIFFS model : addr: 0x00D10000, size: 2944.0 KB, type: DATA, subtype: SPIFFS coredump : addr: 0x00FF0000, size: 64.0 KB, type: DATA, subtype: COREDUMP ------------------------------------------ Software Info: ------------------------------------------ Compile Date/Time : Dec 6 2024 14:12:55 ESP-IDF Version : v5.1.4 Arduino Version : 3.0.4 ------------------------------------------ Board Info: ------------------------------------------ Arduino Board : ESP32S3_DEV Arduino Variant : esp32s3 Arduino Runs Core : 1 Arduino Events on : 1 CDC On Boot : 0 ============ Before Setup End ============ E (1559) main: Hello, world! [ 1560][V][esp32-hal-uart.c:408] uartBegin(): UART0 baud(115200) Mode(800001c) rxPin(44) txPin(43) [ 1573][V][esp32-hal-uart.c:497] uartBegin(): UART0 not installed. Starting installation �[ 1582][V][esp32-hal-uart.c:560] uartBegin(): UART0 initialization done. [ 1590][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type I2S_STD_BCLK (13) successfully set to 0x420107c4 0x420107c4: I2SClass::i2sDetachBus(void*) at C:/Users/qianj/esp/v5.1.4/esp-idf/components/arduino-esp32/libraries/ESP_I2S/src/ESP_I2S.cpp:229 [ 1603][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type I2S_STD_WS (14) successfully set to 0x420107c4 0x420107c4: I2SClass::i2sDetachBus(void*) at C:/Users/qianj/esp/v5.1.4/esp-idf/components/arduino-esp32/libraries/ESP_I2S/src/ESP_I2S.cpp:229 [ 1615][V][esp32-hal-periman.c:235] perimanSetBusDeinit(): Deinit function for type I2S_STD_DIN (16) successfully set to 0x420107c4 0x420107c4: I2SClass::i2sDetachBus(void*) at C:/Users/qianj/esp/v5.1.4/esp-idf/components/arduino-esp32/libraries/ESP_I2S/src/ESP_I2S.cpp:229 [ 1629][V][esp32-hal-periman.c:160] perimanSetPinBus(): Pin 4 successfully set to type I2S_STD_BCLK (13) with bus 0x3fc9cc30 [ 1641][V][esp32-hal-periman.c:160] perimanSetPinBus(): Pin 5 successfully set to type I2S_STD_WS (14) with bus 0x3fc9cc30 [ 1653][V][esp32-hal-periman.c:160] perimanSetPinBus(): Pin 6 successfully set to type I2S_STD_DIN (16) with bus 0x3fc9cc30 [ 1665][D][esp32-hal-sr.c:338] sr_start(): init model I (1670) MODEL_LOADER: The storage free size is 23296 KB I (1671) MODEL_LOADER: The partition size is 2944 KB ESP-ROM:esp32s3-20210327 Build:Mar 27 2021 rst:0x8 (TG1WDT_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT) Saved PC:0x42003f5b 0x42003f5b: panic_handler at C:/Users/qianj/esp/v5.1.4/esp-idf/components/esp_system/port/panic_handler.c:145 (discriminator 3)
Other Steps to Reproduce
No response
I have checked existing issues, online documentation and the Troubleshooting Guide
- I confirm I have checked existing issues, online documentation and Troubleshooting guide.