Sometimes hitting assert in vTaskStepTick() after sleep mode

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.

Any thoughts?

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.