void OSIdleTaskHook (void);
File | Called from | Code enabled by |
---|---|---|
|
| N/A |
This function is called by OS_IdleTask()
.
OSIdleTaskHook()
is part of the CPU port code and this function must not be called by the application code. OSIdleTaskHook()
is used by the µC/OS-III port developer.
OSIdleTaskHook()
runs in the context of the idle task and thus it is important to make sure there is sufficient stack space in the idle task. OSIdleTaskHook()
must not make any OS???Pend()
calls, call OSTaskSuspend()
or OSTimeDly???()
. In other words, this function must never be allowed to make a blocking call.
Arguments
None
Returned Value
None
Notes/Warnings
- Never make blocking calls from
OSIdleTaskHook()
. - Do not call this function from you application.
Example
The code below calls an application-specific hook that the application programmer can define. The user can simply set the value of OS_AppIdleTaskHookPtr
to point to the desired hook function which in this case is assumed to be defined in os_app_hooks.c
. The idle task calls OSIdleTaskHook()
which in turns calls App_OS_IdleTaskHook()
through OS_AppIdleTaskHookPtr
.
This feature is very useful when there is a processor that can enter low-power mode. When µC/OS-III has no other task to run, the processor can be put to sleep waiting for an interrupt to wake it up.