| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249 |
- /*
- ************************************************************************************************************************
- * uC/OS-III
- * The Real-Time Kernel
- *
- * (c) Copyright 2009-2011; Micrium, Inc.; Weston, FL
- * All rights reserved. Protected by international copyright laws.
- *
- * APPLICATION HOOKS
- *
- * File : OS_APP_HOOKS.C
- * By : JJL
- * Version : V3.02.00
- *
- * LICENSING TERMS:
- * ---------------
- * uC/OS-III is provided in source form for FREE short-term evaluation, for educational use or
- * for peaceful research. If you plan or intend to use uC/OS-III in a commercial application/
- * product then, you need to contact Micrium to properly license uC/OS-III for its use in your
- * application/product. We provide ALL the source code for your convenience and to help you
- * experience uC/OS-III. The fact that the source is provided does NOT mean that you can use
- * it commercially without paying a licensing fee.
- *
- * Knowledge of the source code may NOT be used to develop a similar product.
- *
- * Please help us continue to provide the embedded community with the finest software available.
- * Your honesty is greatly appreciated.
- *
- * You can contact us at www.micrium.com, or by phone at +1 (954) 217-2036.
- ************************************************************************************************************************
- */
- #include <os.h>
- #include <os_app_hooks.h>
- /*$PAGE*/
- /*
- ************************************************************************************************************************
- * SET ALL APPLICATION HOOKS
- *
- * Description: Set ALL application hooks.
- *
- * Arguments : none.
- *
- * Note(s) : none
- ************************************************************************************************************************
- */
- void App_OS_SetAllHooks (void)
- {
- #if OS_CFG_APP_HOOKS_EN > 0u
- CPU_SR_ALLOC();
- CPU_CRITICAL_ENTER();
- OS_AppTaskCreateHookPtr = App_OS_TaskCreateHook;
- OS_AppTaskDelHookPtr = App_OS_TaskDelHook;
- OS_AppTaskReturnHookPtr = App_OS_TaskReturnHook;
- OS_AppIdleTaskHookPtr = App_OS_IdleTaskHook;
- OS_AppStatTaskHookPtr = App_OS_StatTaskHook;
- OS_AppTaskSwHookPtr = App_OS_TaskSwHook;
- OS_AppTimeTickHookPtr = App_OS_TimeTickHook;
- CPU_CRITICAL_EXIT();
- #endif
- }
- /*$PAGE*/
- /*
- ************************************************************************************************************************
- * CLEAR ALL APPLICATION HOOKS
- *
- * Description: Clear ALL application hooks.
- *
- * Arguments : none.
- *
- * Note(s) : none
- ************************************************************************************************************************
- */
- void App_OS_ClrAllHooks (void)
- {
- #if OS_CFG_APP_HOOKS_EN > 0u
- CPU_SR_ALLOC();
- CPU_CRITICAL_ENTER();
- OS_AppTaskCreateHookPtr = (OS_APP_HOOK_TCB)0;
- OS_AppTaskDelHookPtr = (OS_APP_HOOK_TCB)0;
- OS_AppTaskReturnHookPtr = (OS_APP_HOOK_TCB)0;
- OS_AppIdleTaskHookPtr = (OS_APP_HOOK_VOID)0;
- OS_AppStatTaskHookPtr = (OS_APP_HOOK_VOID)0;
- OS_AppTaskSwHookPtr = (OS_APP_HOOK_VOID)0;
- OS_AppTimeTickHookPtr = (OS_APP_HOOK_VOID)0;
- CPU_CRITICAL_EXIT();
- #endif
- }
- /*$PAGE*/
- /*
- ************************************************************************************************************************
- * APPLICATION TASK CREATION HOOK
- *
- * Description: This function is called when a task is created.
- *
- * Arguments : p_tcb is a pointer to the task control block of the task being created.
- *
- * Note(s) : none
- ************************************************************************************************************************
- */
- void App_OS_TaskCreateHook (OS_TCB *p_tcb)
- {
- (void)&p_tcb;
- }
- /*$PAGE*/
- /*
- ************************************************************************************************************************
- * APPLICATION TASK DELETION HOOK
- *
- * Description: This function is called when a task is deleted.
- *
- * Arguments : p_tcb is a pointer to the task control block of the task being deleted.
- *
- * Note(s) : none
- ************************************************************************************************************************
- */
- void App_OS_TaskDelHook (OS_TCB *p_tcb)
- {
- (void)&p_tcb;
- }
- /*$PAGE*/
- /*
- ************************************************************************************************************************
- * APPLICATION TASK RETURN HOOK
- *
- * Description: This function is called if a task accidentally returns. In other words, a task should either be an
- * infinite loop or delete itself when done.
- *
- * Arguments : p_tcb is a pointer to the OS_TCB of the task that is returning.
- *
- * Note(s) : none
- ************************************************************************************************************************
- */
- void App_OS_TaskReturnHook (OS_TCB *p_tcb)
- {
- (void)&p_tcb;
- }
- /*$PAGE*/
- /*
- ************************************************************************************************************************
- * APPLICATION IDLE TASK HOOK
- *
- * Description: This function is called by the idle task. This hook has been added to allow you to do such things as
- * STOP the CPU to conserve power.
- *
- * Arguments : none
- *
- * Note(s) : none
- ************************************************************************************************************************
- */
- void App_OS_IdleTaskHook (void)
- {
- }
- /*$PAGE*/
- /*
- ************************************************************************************************************************
- * APPLICATION OS INITIALIZATION HOOK
- *
- * Description: This function is called by OSInit() at the beginning of OSInit().
- *
- * Arguments : none
- *
- * Note(s) : none
- ************************************************************************************************************************
- */
- void App_OS_InitHook (void)
- {
- }
- /*$PAGE*/
- /*
- ************************************************************************************************************************
- * APPLICATION STATISTIC TASK HOOK
- *
- * Description: This function is called every second by uC/OS-III's statistics task. This allows your application to add
- * functionality to the statistics task.
- *
- * Arguments : none
- *
- * Note(s) : none
- ************************************************************************************************************************
- */
- void App_OS_StatTaskHook (void)
- {
- }
- /*$PAGE*/
- /*
- ************************************************************************************************************************
- * APPLICATION TASK SWITCH HOOK
- *
- * Description: This function is called when a task switch is performed. This allows you to perform other operations
- * during a context switch.
- *
- * Arguments : none
- *
- * Note(s) : 1) Interrupts are disabled during this call.
- * 2) It is assumed that the global pointer 'OSTCBHighRdyPtr' points to the TCB of the task that will be
- * 'switched in' (i.e. the highest priority task) and, 'OSTCBCurPtr' points to the task being switched out
- * (i.e. the preempted task).
- ************************************************************************************************************************
- */
- void App_OS_TaskSwHook (void)
- {
- }
- /*$PAGE*/
- /*
- ************************************************************************************************************************
- * APPLICATION TICK HOOK
- *
- * Description: This function is called every tick.
- *
- * Arguments : none
- *
- * Note(s) : 1) This function is assumed to be called from the Tick ISR.
- ************************************************************************************************************************
- */
- void App_OS_TimeTickHook (void)
- {
- }
|