vListInsert application crash

Hi everyone,

I know that it is not an unusual case when an application crashes under the following comment in the list.c file:
“If you find your application is crashing here then likely causes are …”
But I’ve never seen a todo list for the issue to follow.

I checked my project for all of the 5 cases that listed in the comment, but crashes are still present.
configASSERT() is defined. There’s no overflowing stack. All API calls from interrupts are checked and “FromISR” is present.

My MCU is i.MX RT1020 with Arm Cortex-M7 core, I use FreeRTOS version 10.4.4 with ARM_CN4F. I just ported my application from STM32F413 and it is working fine on that chip.

My question is - is there a standard todo list to find the cause of the problem, best practices, common approach, etc? I struggled with the issue for over a week and I just don’t know what to do now and where to look at…

I also tried to use the SEGGER system view, and it’s showing all the events, but I just don’t know where to look at to see something related to the issue. Maybe anyone already tried to debug this issue with other tools and can suggest something…

Did you follow the instructions on this page?

Hi, thanks for the reply!

You think fault conditions might be related? Cause the program execution doesn’t end in any of the fault handlers, and just stuck in the infinite loop.

For the fault conditions I managed to come up with the strategy of saving the pc register in RAM, and then after MCU reboot access this value and see what function caused the issue.

Most common cause of this is incorrect interrupt priority or memory corruption. configASSERT should catch incorrect interrupt priority. What is configASSERT defined to?

Next, you can try to disable parts of your application one by one until the crash is not present to narrow down the problematic part.

Hi, thanks for the reply!

I defined configASSERT like this:
#define configASSERT(x) if( ( x ) == 0 ){ taskDISABLE_INTERRUPTS(); for( ;; ); }

Regarding disabling parts of the application, - got it. I got 27 tasks and use two dozens of peripherals - it would be a long journey ; )