I am working on an ESP32-MINI-1. Until now the CPU frequency was set to 160 MHz and everything was working fine. Now I need to increase the speed to 240 MHz to maximize the throughput in a part of my code.
Unfortunately, when I set the frequency, I sometimes have the following crash at startup:
ets Jul 29 2019 12:21:46
rst:0x1 (POWERON_RESET),boot:0x1b (SPI_FAST_FLASH_BOOT)
configsip: 188777542, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:5424
load:0x40078000,len:14600
load:0x40080400,len:3252
entry 0x40080604
I (730) cpu_start: Pro cpu up.
I (730) cpu_start: Single core mode
I (739) cpu_start: Pro cpu start user code
I (739) cpu_start: cpu freq: 240000000
I (739) cpu_start: Application information:
I (743) cpu_start: Project name: firmware
I (748) cpu_start: App version: 1.8.2-93-g55be30f-dirty
I (755) cpu_start: Compile time: Jul 28 2023 11:04:53
I (761) cpu_start: ELF file SHA256: bb7c43154e8e6328...
I (767) cpu_start: ESP-IDF: v4.4.4-433-g3cec3a0026
I (773) cpu_start: Min chip rev: v3.0
I (778) cpu_start: Max chip rev: v3.99
I (782) cpu_start: Chip rev: v3.0
I (787) heap_init: Initializing. RAM available for dynamic allocation:
I (795) heap_init: At 3FFAFF10 len 000000F0 (0 KiB): DRAM
I (800) heap_init: At 3FFB6388 len 00001C78 (7 KiB): DRAM
I (807) heap_init: At 3FFB9A20 len 00004108 (16 KiB): DRAM
I (813) heap_init: At 3FFD17A0 len 0000E860 (58 KiB): DRAM
I (819) heap_init: At 3FFE0440 len 0001FBC0 (126 KiB): D/IRAM
I (825) heap_init: At 40078000 len 00008000 (32 KiB): IRAM
I (831) heap_init: At 4009F66C len 00000994 (2 KiB): IRAM
Guru Meditation Error: Core 0 panic'ed (StoreProhibited). Exception was unhandled.
Core 0 register dump:
PC : 0x40217e04 PS : 0x00060930 A0 : 0x8021802b A1 : 0x3ffe3670
A2 : 0x3ff80014 A3 : 0x00000000 A4 : 0x00000080 A5 : 0x00000001
A6 : 0x00000015 A7 : 0x00000015 A8 : 0x1ef00064 A9 : 0x00000006
A10 : 0x1ef0004c A11 : 0x00000000 A12 : 0x3ff80014 A13 : 0x00000020
A14 : 0xfff03fff A15 : 0x01000000 SAR : 0x0000001b EXCCAUSE: 0x0000001d
EXCVADDR: 0x1ef00064 LBEG : 0x4000c2e0 LEND : 0x4000c2f6 LCOUNT : 0xffffffff
Backtrace: 0x40217e01:0x3ffe3670 0x40218028:0x3ffe3690 0x40218041:0x3ffe36b0 0x4021808b:0x3ffe36d0 0x400d6f34:0x3ffe36f0 0x400d70f7:0x3ffe3710 0x400d38cf:0x3ffe3bf0 0x400d3afe:0x3ffe3c10 0x400813b1:0x3ffe3c50 0x4007951a:0x3ffe3c90 0x40079875:0x3ffe3cc0 0x4008066d:0x3ffe3df0 0x40007c15:0x3ffe3eb0 0x4000073d:0x3ffe3f20
ELF file SHA256: bb7c43154e8e6328
Rebooting...
The backtrace gives me this :
Code: Select all
0x40217e01: control_construct at /home/victor/dev/firmware/esp-idf/components/heap/heap_tlsf.c:517 (discriminator 3)
0x40218028: tlsf_create at /home/victor/dev/firmware/esp-idf/components/heap/heap_tlsf.c:826
0x40218041: tlsf_create_with_pool at /home/victor/dev/firmware/esp-idf/components/heap/heap_tlsf.c:837 (discriminator 4)
0x4021808b: multi_heap_register_impl at /home/victor/dev/firmware/esp-idf/components/heap/multi_heap.c:123
0x400d6f34: register_heap at /home/victor/dev/firmware/esp-idf/components/heap/heap_caps_init.c:34
0x400d70f7: heap_caps_init at /home/victor/dev/firmware/esp-idf/components/heap/heap_caps_init.c:113
0x400d38cf: do_core_init at /home/victor/dev/firmware/esp-idf/components/esp_system/startup.c:253
0x400d3afe: start_cpu0_default at /home/victor/dev/firmware/esp-idf/components/esp_system/startup.c:441 (discriminator 3)
0x400813b1: call_start_cpu0 at /home/victor/dev/firmware/esp-idf/components/esp_system/port/cpu_start.c:630
- Is it a bug?
- Is there something really obvious that I am missing here?
- Otherwise, what could cause this kind of issue?