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.