123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252 |
- /*
- *********************************************************************************************************
- * EXAMPLE CODE
- *
- * This file is provided as an example on how to use Micrium products.
- *
- * Please feel free to use any application code labeled as 'EXAMPLE CODE' in
- * your application products. Example code may be used as is, in whole or in
- * part, or may be used as a reference only. This file can be modified as
- * required to meet the end-product requirements.
- *
- * Please help us continue to provide the Embedded community with the finest
- * software available. Your honesty is greatly appreciated.
- *
- * You can find our product's user manual, API reference, release notes and
- * more information at https://doc.micrium.com.
- * You can contact us at www.micrium.com.
- *********************************************************************************************************
- */
- /*
- *********************************************************************************************************
- *
- * uC/OS-II
- * Application Hooks
- *
- * Filename : app_hooks.c
- * Version : V1.00
- * Programmer(s) : FT
- *********************************************************************************************************
- */
- /*
- *********************************************************************************************************
- * INCLUDE FILES
- *********************************************************************************************************
- */
- #include <includes.h>
- /*
- *********************************************************************************************************
- * EXTERN GLOBAL VARIABLES
- *********************************************************************************************************
- */
- /*
- *********************************************************************************************************
- * LOCAL CONSTANTS
- *********************************************************************************************************
- */
- /*
- *********************************************************************************************************
- * LOCAL DATA TYPES
- *********************************************************************************************************
- */
- /*
- *********************************************************************************************************
- * LOCAL TABLES
- *********************************************************************************************************
- */
- /*
- *********************************************************************************************************
- * LOCAL GLOBAL VARIABLES
- *********************************************************************************************************
- */
- /*
- *********************************************************************************************************
- * LOCAL FUNCTION PROTOTYPES
- *********************************************************************************************************
- */
- /*
- **********************************************************************************************************
- **********************************************************************************************************
- ** GLOBAL FUNCTIONS
- **********************************************************************************************************
- **********************************************************************************************************
- */
- /*
- *********************************************************************************************************
- *********************************************************************************************************
- ** uC/OS-II APP HOOKS
- *********************************************************************************************************
- *********************************************************************************************************
- */
- #if (OS_APP_HOOKS_EN > 0)
- /*
- *********************************************************************************************************
- * TASK CREATION HOOK (APPLICATION)
- *
- * Description : This function is called when a task is created.
- *
- * Argument(s) : ptcb is a pointer to the task control block of the task being created.
- *
- * Note(s) : (1) Interrupts are disabled during this call.
- *********************************************************************************************************
- */
- void App_TaskCreateHook(OS_TCB *ptcb)
- {
- #if (APP_CFG_PROBE_OS_PLUGIN_EN == DEF_ENABLED) && (OS_PROBE_HOOKS_EN > 0)
- OSProbe_TaskCreateHook(ptcb);
- #endif
- }
- /*
- *********************************************************************************************************
- * TASK DELETION HOOK (APPLICATION)
- *
- * Description : This function is called when a task is deleted.
- *
- * Argument(s) : ptcb is a pointer to the task control block of the task being deleted.
- *
- * Note(s) : (1) Interrupts are disabled during this call.
- *********************************************************************************************************
- */
- void App_TaskDelHook(OS_TCB *ptcb)
- {
- (void)ptcb;
- }
- /*
- *********************************************************************************************************
- * IDLE TASK HOOK (APPLICATION)
- *
- * Description : This function is called by OSTaskIdleHook(), which 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.
- *
- * Argument(s) : none.
- *
- * Note(s) : (1) Interrupts are enabled during this call.
- *********************************************************************************************************
- */
- #if OS_VERSION >= 251
- void App_TaskIdleHook(void)
- {
- }
- #endif
- /*
- *********************************************************************************************************
- * STATISTIC TASK HOOK (APPLICATION)
- *
- * Description : This function is called by OSTaskStatHook(), which is called every second by uC/OS-II's
- * statistics task. This allows your application to add functionality to the statistics task.
- *
- * Argument(s) : none.
- *********************************************************************************************************
- */
- void App_TaskStatHook(void)
- {
- }
- /*
- *********************************************************************************************************
- * TASK RETURN HOOK (APPLICATION)
- *
- * 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 : ptcb is a pointer to the task control block of the task that is returning.
- *
- * Note(s) : none
- *********************************************************************************************************
- */
- #if OS_VERSION >= 289
- void App_TaskReturnHook(OS_TCB *ptcb)
- {
- (void)ptcb;
- }
- #endif
- /*
- *********************************************************************************************************
- * TASK SWITCH HOOK (APPLICATION)
- *
- * Description : This function is called when a task switch is performed. This allows you to perform other
- * operations during a context switch.
- *
- * Argument(s) : none.
- *
- * Note(s) : (1) Interrupts are disabled during this call.
- *
- * (2) It is assumed that the global pointer 'OSTCBHighRdy' points to the TCB of the task that
- * will be 'switched in' (i.e. the highest priority task) and, 'OSTCBCur' points to the
- * task being switched out (i.e. the preempted task).
- *********************************************************************************************************
- */
- #if OS_TASK_SW_HOOK_EN > 0
- void App_TaskSwHook(void)
- {
- #if (APP_CFG_PROBE_OS_PLUGIN_EN > 0) && (OS_PROBE_HOOKS_EN > 0)
- OSProbe_TaskSwHook();
- #endif
- }
- #endif
- /*
- *********************************************************************************************************
- * OS_TCBInit() HOOK (APPLICATION)
- *
- * Description : This function is called by OSTCBInitHook(), which is called by OS_TCBInit() after setting
- * up most of the TCB.
- *
- * Argument(s) : ptcb is a pointer to the TCB of the task being created.
- *
- * Note(s) : (1) Interrupts may or may not be ENABLED during this call.
- *********************************************************************************************************
- */
- #if OS_VERSION >= 204
- void App_TCBInitHook(OS_TCB *ptcb)
- {
- (void)ptcb;
- }
- #endif
- /*
- *********************************************************************************************************
- * TICK HOOK (APPLICATION)
- *
- * Description : This function is called every tick.
- *
- * Argument(s) : none.
- *
- * Note(s) : (1) Interrupts may or may not be ENABLED during this call.
- *********************************************************************************************************
- */
- #if OS_TIME_TICK_HOOK_EN > 0
- void App_TimeTickHook(void)
- {
- #if (APP_CFG_PROBE_OS_PLUGIN_EN == DEF_ENABLED) && (OS_PROBE_HOOKS_EN > 0)
- OSProbe_TickHook();
- #endif
- HAL_IncTick(); /* STM32CubeF4 library function call. */
- }
- #endif
- #endif
|