assert failed: taskSelectHighestPriorityTaskSMP tasks.c:3447 (xTaskScheduled == pdTRUE)

raff5184
Posts: 9
Joined: Fri Nov 12, 2021 5:55 pm

assert failed: taskSelectHighestPriorityTaskSMP tasks.c:3447 (xTaskScheduled == pdTRUE)

Postby raff5184 » Tue Apr 19, 2022 6:12 pm

Hi all,

I'm writing a code for the ESP32 in Arduino IDE with C++ objects defined in C++ files. The code works like this, it configures an interrupt on a pin of the ESP32 and when it receives the interrupt, it reads a message on the SPI as master and then it prints the message to serial.
1) I had ESP32 version 1.0.6 and everything was working fine.
2) after updating to version 2.0.2, everything still works until I try to print to Serial and I get either

Code: Select all

assert failed: taskSelectHighestPriorityTaskSMP tasks.c:3447 (xTaskScheduled == pdTRUE)


Backtrace:0x40083fbd:0x3ffc46700x3ffc472d:0x3ffc4750  |<-CORRUPTED




ELF file SHA256: 0000000000000000

Rebooting...

or

Code: Select all

Guru Meditation Error: Core  1 panic'ed (Interrupt wdt timeout on CPU1). 

Core  1 register dump:
PC      : 0x4008bbb4  PS      : 0x00060a35  A0      : 0x8008ae26  A1      : 0x3ffbec9c  
A2      : 0x3ffb7de8  A3      : 0x3ffc6a90  A4      : 0x00000004  A5      : 0x00060a23  
A6      : 0x00060a23  A7      : 0x00000001  A8      : 0x3ffc6a90  A9      : 0x00000018  
A10     : 0x3ffc6a90  A11     : 0x00000018  A12     : 0x3ffc1e44  A13     : 0x00060a23  
A14     : 0x007beea8  A15     : 0x003fffff  SAR     : 0x0000001d  EXCCAUSE: 0x00000006  
EXCVADDR: 0x00000000  LBEG    : 0x40085e10  LEND    : 0x40085e26  LCOUNT  : 0xffffffff  
Core  1 was running in ISR context:
EPC1    : 0x400da603  EPC2    : 0x00000000  EPC3    : 0x00000000  EPC4    : 0x00000000


Backtrace:0x4008bbb1:0x3ffbec9c |<-CORRUPTED


Core  0 register dump:
PC      : 0x4008bd35  PS      : 0x00060035  A0      : 0x8008aa53  A1      : 0x3ffbe7fc  
A2      : 0x3ffbeea8  A3      : 0xb33fffff  A4      : 0x0000abab  A5      : 0x00060023  
A6      : 0x00060021  A7      : 0x0000cdcd  A8      : 0x0000abab  A9      : 0xffffffff  
A10     : 0x3ffc1c4c  A11     : 0x00000000  A12     : 0x3ffc1c48  A13     : 0x00000007  
A14     : 0x007beea8  A15     : 0x003fffff  SAR     : 0x0000001a  EXCCAUSE: 0x00000006  
EXCVADDR: 0x00000000  LBEG    : 0x00000000  LEND    : 0x00000000  LCOUNT  : 0x00000000  


Backtrace:0x4008bd32:0x3ffbe7fc |<-CORRUPTED




ELF file SHA256: 0000000000000000

Rebooting...
or both errors

ESP_Sprite
Posts: 9764
Joined: Thu Nov 26, 2015 4:08 am

Re: assert failed: taskSelectHighestPriorityTaskSMP tasks.c:3447 (xTaskScheduled == pdTRUE)

Postby ESP_Sprite » Wed Apr 20, 2022 1:15 am

Not easy to say without seeing the code, but likely you're trying to do something in interrupt context that you shouldn't do (e.g. call a blocking function). Use the interrupt to set a variable or semaphore or whatever, then use a task or your loop function to check that and do the SPI stuff.

elia_karrer
Posts: 1
Joined: Mon Jan 08, 2024 4:58 pm

Re: assert failed: taskSelectHighestPriorityTaskSMP tasks.c:3447 (xTaskScheduled == pdTRUE)

Postby elia_karrer » Mon Jan 08, 2024 5:01 pm

Had the same error, fixed it by removing a delay() call inside the Interrupt.

Who is online

Users browsing this forum: No registered users and 127 guests