FreeRTOS, uxNumberOfItems of pxReadyTasksLists[ uxTopPriority ] becomes “0” randomly

Hi, First of all, as an embedded developer, I want thank FreeRTOS to make my life easier.
I am using FreeRTOS V8.1.2 on custom board using STM32L151 uC. My applications run smooth most of the time. however, sometimes within 1 minute after power ON or sometimes after few hours, freeRTOS calls configASSERT function and execution get stopped (as I have written configASSERT function to stop execution). In configASSERT function, debugger shows error is in “tasks.c” file and line number which cause error is “2160”. After some debugging, I found that uxNumberOfItems of pxReadyTasksLists[ uxTopPriority ] becomes “0” due to that configASSERT been called. I am using configUSEPORTOPTIMISEDTASKSELECTION. However, I have tried with disabling “port optimized task selection” with no luck. I have provided more than sufficient stack to every tasks and set every interrupt priority to configLIBRARYLOWESTINTERRUPT_PRIORITY. Yes, I am using “FromISR” functions from ISR. I have also called “NVICPriorityGroupConfig(NVICPriorityGroup_4);” in main after system initialization. I have tried hard to solve this issue but till data not find any solution. I am requesting you all to help me to get rid on this issue. Thanks in Advance. Tarun

FreeRTOS, uxNumberOfItems of pxReadyTasksLists[ uxTopPriority ] becomes “0” randomly

It sounds like you are doing all the right things. Do you also have stack overflow and malloc failed hook functions defined? (http://www.freertos.org/a00016.html). Is it possible you are experiencing a simple data corruption somewhere, for example, writing off the end of a buffer, or using a pointer that has become corrupt? We have had an idea for a while to add some [optional] ‘check values’ into the code that place known values at the start and end of structures to make it easier to see if a structure has simply been over written by something that should not have done. Regards.

FreeRTOS, uxNumberOfItems of pxReadyTasksLists[ uxTopPriority ] becomes “0” randomly

Thanks for quick response. Yes, both stack overflow and malloc failed hook functions defined. I am not getting any call of both function. So that should not be a issue. BTW, I like your idea about ‘check values’. I will implement it in my code. However, if you find any other solution, please post it to me. Thanks, Tarun