forked from weston-embedded/uC-OS3
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 943b62f
Showing
214 changed files
with
75,976 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) | ||
{ | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
Oops, something went wrong.