I have an ESP32-S3 with 8MB of PSRAM, connected to a RGB display. I am using Slint as my GUI library. Flash and PSRAM is running at 120MHz. Slint is running in its own FreeRTOS task, and I am updating the variables in Slint in a separate FreeRTOS task. Most devices are very stable and have no problems, but some devices will occasionally get a LoadProhibited crash. I have not found a way to reproduce the problem, it happens very randomly. None of the tasks running seems to be close to running out of stack, and there is about 50-60k of heap left.
Any help, suggestions or guidance in debugging such a problem is highly appreciated.
Register dump
Code: Select all
Guru Meditation Error: Core 0 panic'ed (LoadProhibited). Exception was unhandled.
Core 0 register dump:
PC : 0x422f5294 PS : 0x00060730 A0 : 0x822f52aa A1 : 0x3fce4d00
--- 0x422f5294: i_slint_core::properties::dependency_tracker::DependencyListHead<T>::for_each at ??:?
A2 : 0x00000006 A3 : 0x422f5270 A4 : 0x3c4cd454 A5 : 0x00000001
--- 0x422f5270: i_slint_core::properties::dependency_tracker::DependencyListHead<T>::for_each at ??:?
A6 : 0x00000000 A7 : 0x20332e33 A8 : 0x00000000 A9 : 0x3fce4cd0
A10 : 0x3fcd8870 A11 : 0x00000001 A12 : 0x00000007 A13 : 0x41be9ac5
A14 : 0x3fca5e90 A15 : 0x3fca5ea0 SAR : 0x00000019 EXCCAUSE: 0x0000001c
EXCVADDR: 0x00000008 LBEG : 0x40056fc5 LEND : 0x40056fe7 LCOUNT : 0xffffffff
--- 0x40056fc5: memcpy in ROM
0x40056fe7: memcpy in ROM
Backtrace: 0x422f5291:0x3fce4d00 0x422f52a7:0x3fce4d40 0x422f52a7:0x3fce4d80 0x422c8e8e:0x3fce4dc0 0x422e14de:0x3fce4e10 0x4205db11:0x3fce4e50 0x42013fd2:0x3fce4e70 0x4200f2c8:0x3fce4ea0 0x4201001b:0x3fce4f10 0x403805d2:0x3fce4fc0
--- 0x422f5291: i_slint_core::properties::dependency_tracker::DependencyListHead<T>::for_each at ??:?
0x422f52a7: i_slint_core::properties::dependency_tracker::DependencyListHead<T>::for_each at ??:?
0x422f52a7: i_slint_core::properties::dependency_tracker::DependencyListHead<T>::for_each at ??:?
0x422c8e8e: i_slint_core::properties::PropertyHandle::mark_dirty at ??:?
0x422e14de: slint_property_set_changed at ??:?
0x4205db11: Backend::set_watts(float const&) const
0x42013fd2: setWatts(float)
0x4200f2c8: update_gui
0x4201001b: dynamicTaskStateMachine
0x403805d2: vPortTaskWrapper
Code: Select all
TCB NAME PRIO C/B STACK USED/FREE
---------- ---------------- -------- ----------------
0x3fce5128 sm 14/14 1296/14060
0x3fcdfdb8 can_bus 13/13 928/4176
0x3fcae814 IDLE0 0/0 640/880
0x3fcaef74 IDLE1 0/0 640/880
0x3fcc8fc8 slint_gui 15/15 1184/34652
0x3fce6288 update_check 12/12 576/3516
0x3fce7370 tiT 18/18 752/2820
0x3fcb6fdc ping 2/2 752/1800
0x3fcadac0 mqtt_task 5/5 1216/6964
0x3fcacf34 adjust_psram_ti 23/23 720/4384
0x3fcb00d4 Tmr Svc 1/1 608/3472
0x3fca9d04 ipc0 15/15 672/1872
0x3fcaa864 ipc1 24/24 672/1872
0x3fcdeaa8 Audio Task 14/14 768/3324
0x3fcdf9e0 sys_evt 20/20 784/2020
0x3fce92a8 wifi 23/23 736/2844
0x3fcab9c4 esp_timer 22/22 672/3408
