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
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