We are very rarely hitting an assert in vTaskStepTick() due to the sleep period being longer than expected. This looks like it could be due to a timing susceptibility in the kernel but that may be due to my own misunderstanding or something that we have done wrong.
We have the watchdog disabled and I have a unit that has locked up due to hitting the assert in vTaskStepTick() and I have hot connected to it with the debugger to analyze the call stack, which I will describe in this link. Using a link to the doc since new users can only share one media image and I have several embedded in the description.
EDIT - Fixed link permisssions
Is SuppressTicksAndSleep_RTC() something we provide? If not, where did it come from?
I should have made it clear that the target is an STM32L1. SuppressTicksAndSleep_RTC() is an interface that is provided in both the STM32 and MAXIM326xx ports in freertos.c. Both devices are ARM Cortex-M.
Is this in our repo? Is it something we provide?
That is an interesting question. We are using a distribution that came with the IDE for the STM32 and I assumed it was part of the release. However, I don’t see it in 10.4.1 so I guess we will have to inquire with the microcontroller manufacturer on this one.
Thanks for your response.
EDIT - Clarifying that that interface is only an STM32 interface.