FreeRTOS pointers overwriting stack boundaires

I’m running FreeRTOS v10.3.1 on a KCU105 Microblaze with the Xilinx SDK 2019.1, and multiple FreeRTOS pointers are overwriting stack guard values and triggering the vApplicationStackOverflowHook during a context switch. The same locations within the same task are overwritten by the FreeRTOS pointers, but the runtimes leading to the memory corruption vary wildly - from seconds to dozens of minutes. I currently have hardware watchpoints set on the 4 stack guard memory locations, and when the watchpoints are triggered it’s due to a FreeRTOS pointer overwriting that location. For example, List_t * const pxList = pxItemToRemove->pxContainer; in the list.c function uxListRemove(), and ListItem_t * const pxIndex = pxList->pxIndex; in the list.c function vListInsertEnd() are writing to the stack guard value locations.

Any insight on this would be much appreciated.

When Lists start to go funny. especially intermently, the first thing I think of is to check interrupt priorities. Do you have configAssert defined?

1 Like

I am seeing the same thing now. Did you even find a root cause?