Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

os.h/os_cpu_c.c and os_app_hooks.c

Prototype

Code Block
void  OSIdleTaskHook (void)

Arguments

None

Returned Value

...

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.

Code Block
titleOSIdleTaskHook() example usage
          void  App_OS_IdleTaskHook (void)                           /* See os_app_hooks.c    */
          {
              /* Your code goes here! */
              /* Put the CPU in low power mode (optional) */
          }
           
           
          void App_OS_SetAllHooks (void)                             /* os_app_hooks.c        */
          {
              CPU_SR_ALLOC();
           
              CPU_CRITICAL_ENTER();
              :
              OS_AppIdleTaskHookPtr = App_OS_IdleTaskHook;
              :
              CPU_CRITICAL_EXIT();
          }
           
           
          void  OSIdleTaskHook (void)                                /* See os_cpu_c.c        */
          {
          #if OS_CFG_APP_HOOKS_EN > 0u
              if (OS_AppIdleTaskHookPtr != (OS_APP_HOOK_VOID)0) {    /* Call application hook */
                  (*OS_AppIdleTaskHookPtr)();
              }
          #endif
          }