Does vTaskSuspendAll() stop even the timers created?


I wanted to know if the vTaskSuspendAll() API suspends even the timers created. If not, is there any API to stop and start all the timers like vTaskSuspendAll() and xTaskResumeAll() for tasks?

On a side note, are timers created in a similar way to how Tasks are created in the kernel?

The timers still will “run” in the sense that their time will pass, but no timer will trigger, as that requires doing a Scheduler Task Switch to the timer task.

TImers are similar to tasks, in that there is a FreeRTOS call to create them, but the active timers are managed by the TImer Task, not the main kernel (but the kernel manages the Timer Task)

There’s no API function to stop/start all timers. Using the existing API you would need to do that for each timer individually, e.g., xTimerStop() and xTimerStart().

What problem do you want to solve by stopping all timers? There may be some better alternative solutions we could suggest.