Very strange LoadProhibited crash

eidetech
Posts: 6
Joined: Mon Feb 28, 2022 12:58 pm

Very strange LoadProhibited crash

Postby eidetech » Tue May 13, 2025 7:41 am

Hey

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
Task stack overview

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

Sprite
Espressif staff
Espressif staff
Posts: 10636
Joined: Thu Nov 26, 2015 4:08 am

Re: Very strange LoadProhibited crash

Postby Sprite » Wed May 14, 2025 1:21 am

Are you sure you're doing re-entrancy properly, as in, do you use proper mutexes/semaphores/queues/... to move information between tasks rather than simply updating variables the other task may be using at that exact moment?

eidetech
Posts: 6
Joined: Mon Feb 28, 2022 12:58 pm

Re: Very strange LoadProhibited crash

Postby eidetech » Wed May 14, 2025 6:22 am

I noticed that setWatts was missing the following code

Code: Select all

slint::invoke_from_event_loop([variable] {
// Slint operation
  });
as described in https://releases.slint.dev/1.0.0/docs/c ... 17b0263430

So I assume that adding that solves it, no resets so far :)

Who is online

Users browsing this forum: Amazon [Bot], ChatGPT-User, pdragun, Semrush [Bot] and 1 guest