The actual source code used by the FreeRTOS AVR port is slightly different to the examples shown on the previous
pages. vPortYieldFromTick() is itself implemented as a ‘naked’ function, and the context is saved and restored within
vPortYieldFromTick(). It is done this way due to the implementation of non-preemptive context switches (where a task blocks
itself) – which are not described here.
The FreeRTOS implementation of the RTOS tick is therefore (see the comments in the source code snippets for further details):