Homepage  

Hook Functions
[FreeRTOS Fundamentals]

Idle Hook Function

The idle task can optionally call an application defined hook (or callback) function - the idle hook. The idle task runs at the very lowest priority, so such an idle hook function will only get executed when there are no tasks of higher priority that are able to run. This makes the idle hook function an ideal place to put the processor into a low power state - providing an automatic power saving whenever there is no processing to be performed.

The idle hook will only get called if configUSE_IDLE_HOOK is set to 1 within FreeRTOSConfig.h. When this is set the application must provide the hook function with the following prototype:

void vApplicationIdleHook( void );
The idle hook is called repeatedly as long as the idle task is running. It is paramount that the idle hook function does not call any API functions that could cause it to block.



Tick Hook Function

The tick interrupt can optionally call an application defined hook (or callback) function - the tick hook. The tick hook provides a convenient place to implement timer functionality.

The tick hook will only get called if configUSE_TICK_HOOK is set to 1 within FreeRTOSConfig.h. When this is set the application must provide the hook function with the following prototype:

void vApplicationTickHook( void );
vApplicationTickHook() executes from within an ISR so must be very short and not use much stack.

See the demo application file crhook.c for an example of how to use a tick hook.


Copyright (C) 2003 - 2008 Richard Barry
Any and all data, files, source code, html content and documentation included in the FreeRTOS distribution or available on this site are the exclusive property of Richard Barry. See the files license.txt (included in the distribution) and this copyright notice for more information. FreeRTOSTM and FreeRTOS.orgTM are trade marks of Richard Barry.