Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
jamagasr committed Feb 28, 2020
0 parents commit 943b62f
Show file tree
Hide file tree
Showing 214 changed files with 75,976 additions and 0 deletions.
262 changes: 262 additions & 0 deletions Cfg/Template/os_app_hooks.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,262 @@
/*
*********************************************************************************************************
* uC/OS-III
* The Real-Time Kernel
*
* Copyright 2009-2020 Silicon Laboratories Inc. www.silabs.com
*
* SPDX-License-Identifier: APACHE-2.0
*
* This software is subject to an open source license and is distributed by
* Silicon Laboratories Inc. pursuant to the terms of the Apache License,
* Version 2.0 available at www.apache.org/licenses/LICENSE-2.0.
*
*********************************************************************************************************
*/

/*
*********************************************************************************************************
*
* APPLICATION HOOKS
*
* Filename : os_app_hooks.c
* Version : V3.08.00
*********************************************************************************************************
*/

#define MICRIUM_SOURCE
#include <os.h>
#include "os_app_hooks.h"


/*
************************************************************************************************************************
* 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_AppIdleTaskHookPtr = App_OS_IdleTaskHook;

#if (OS_CFG_TASK_STK_REDZONE_EN > 0u)
OS_AppRedzoneHitHookPtr = App_OS_RedzoneHitHook;
#endif

OS_AppStatTaskHookPtr = App_OS_StatTaskHook;

OS_AppTaskCreateHookPtr = App_OS_TaskCreateHook;

OS_AppTaskDelHookPtr = App_OS_TaskDelHook;

OS_AppTaskReturnHookPtr = App_OS_TaskReturnHook;

OS_AppTaskSwHookPtr = App_OS_TaskSwHook;

OS_AppTimeTickHookPtr = App_OS_TimeTickHook;
CPU_CRITICAL_EXIT();
#endif
}


/*
************************************************************************************************************************
* 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_AppIdleTaskHookPtr = (OS_APP_HOOK_VOID)0;

#if (OS_CFG_TASK_STK_REDZONE_EN > 0u)
OS_AppRedzoneHitHookPtr = (OS_APP_HOOK_TCB)0;
#endif

OS_AppStatTaskHookPtr = (OS_APP_HOOK_VOID)0;

OS_AppTaskCreateHookPtr = (OS_APP_HOOK_TCB)0;

OS_AppTaskDelHookPtr = (OS_APP_HOOK_TCB)0;

OS_AppTaskReturnHookPtr = (OS_APP_HOOK_TCB)0;

OS_AppTaskSwHookPtr = (OS_APP_HOOK_VOID)0;

OS_AppTimeTickHookPtr = (OS_APP_HOOK_VOID)0;
CPU_CRITICAL_EXIT();
#endif
}

/*
************************************************************************************************************************
* 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)
{

}

/*
************************************************************************************************************************
* APPLICATION REDZONE HIT HOOK
*
* Description: This function is called when a task's stack overflowed.
*
* Arguments : p_tcb is a pointer to the task control block of the offending task. NULL if ISR.
*
* Note(s) : None.
************************************************************************************************************************
*/
#if (OS_CFG_TASK_STK_REDZONE_EN > 0u)
void App_OS_RedzoneHitHook (OS_TCB *p_tcb)
{
(void)&p_tcb;
CPU_SW_EXCEPTION(;);
}
#endif


/*
************************************************************************************************************************
* 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)
{

}


/*
************************************************************************************************************************
* 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;
}


/*
************************************************************************************************************************
* 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;
}


/*
************************************************************************************************************************
* 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;
}


/*
************************************************************************************************************************
* 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)
{

}


/*
************************************************************************************************************************
* 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)
{

}
74 changes: 74 additions & 0 deletions Cfg/Template/os_app_hooks.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
/*
*********************************************************************************************************
* uC/OS-III
* The Real-Time Kernel
*
* Copyright 2009-2020 Silicon Laboratories Inc. www.silabs.com
*
* SPDX-License-Identifier: APACHE-2.0
*
* This software is subject to an open source license and is distributed by
* Silicon Laboratories Inc. pursuant to the terms of the Apache License,
* Version 2.0 available at www.apache.org/licenses/LICENSE-2.0.
*
*********************************************************************************************************
*/

/*
*********************************************************************************************************
*
* APPLICATION HOOKS
*
* Filename : os_app_hooks.h
* Version : V3.08.00
*********************************************************************************************************
*/

#ifndef OS_APP_HOOKS_H
#define OS_APP_HOOKS_H


#ifdef OS_APP_HOOKS_H_GLOBALS
#define OS_APP_HOOKS_H_EXT
#else
#define OS_APP_HOOKS_H_EXT extern
#endif

/*
************************************************************************************************************************
* INCLUDE HEADER FILES
************************************************************************************************************************
*/

#include <os.h>

/*
************************************************************************************************************************
* FUNCTION PROTOTYPES
************************************************************************************************************************
*/

void App_OS_SetAllHooks (void);
void App_OS_ClrAllHooks (void);


/* ---------------------- HOOKS --------------------- */
void App_OS_IdleTaskHook (void);

#if (OS_CFG_TASK_STK_REDZONE_EN > 0u)
void App_OS_RedzoneHitHook(OS_TCB *p_tcb);
#endif

void App_OS_StatTaskHook (void);

void App_OS_TaskCreateHook(OS_TCB *p_tcb);

void App_OS_TaskDelHook (OS_TCB *p_tcb);

void App_OS_TaskReturnHook(OS_TCB *p_tcb);

void App_OS_TaskSwHook (void);

void App_OS_TimeTickHook (void);

#endif
Loading

0 comments on commit 943b62f

Please sign in to comment.