update CosyOS-钩子文件.

Signed-off-by: 零中断延迟的RTOS <cosyos@139.com>
This commit is contained in:
零中断延迟的RTOS
2025-04-04 05:59:08 +00:00
committed by Gitee
parent 6ac170fee9
commit 5ae4ea81db
6 changed files with 176 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
/**************************************************************************//**
* @item CosyOS-III Hook
* @file copy_hook.c
* @brief 副本钩子(用于更新全局变量副本)
* @details 当一个非原子访问的全局变量需要在中断中读取时,可在副本钩子中
用全局变量的正本来更新副本,可采用赋值、内存拷贝、字符串拷贝等方式。
* @author 迟凯峰
* @version V1.2.0
* @date 2025.03.30
******************************************************************************/
#include "CosyOS.H"
#if SYSCFG_COPYHOOK == __ENABLED__
__WEAK void copy_hook(void) MCUCFG_C51USING
{
}
#endif
+23
View File
@@ -0,0 +1,23 @@
/**************************************************************************//**
* @item CosyOS-III Hook
* @file debug_hook.c
* @brief DEBUG钩子
* @details 在系统调试任务中被调用,用户可自行实现DEBUG信息的输出。
* @author 迟凯峰
* @version V1.2.0
* @date 2025.03.30
******************************************************************************/
#include "CosyOS.H"
#if SYSCFG_DEBUGGING == __ENABLED__
#if SYSCFG_DEBUG_SENDLEN == __DISABLED__
__WEAK void debug_hook(char *p)
#else
__WEAK void debug_hook(char *p, size_t len)
#endif
{
}
#endif
+19
View File
@@ -0,0 +1,19 @@
/**************************************************************************//**
* @item CosyOS-III Hook
* @file idle_hook.c
* @brief 空闲钩子
* @details 在系统空闲任务中被调用,用户可添加自己的代码做一些没有实时性要求的工作。
* @author 迟凯峰
* @version V1.2.0
* @date 2025.03.30
******************************************************************************/
#include "CosyOS.H"
#if SYSCFG_IDLEHOOK == __ENABLED__
__WEAK void idle_hook(void)
{
}
#endif
+19
View File
@@ -0,0 +1,19 @@
/**************************************************************************//**
* @item CosyOS-III Hook
* @file pendsv_hook.c
* @brief 挂起服务钩子
* @details 用于处理标志队列中的中断挂起服务。
* @author 迟凯峰
* @version V1.2.0
* @date 2025.03.30
******************************************************************************/
#include "CosyOS.H"
#if SYSCFG_PENDSVHOOK == __ENABLED__
__WEAK void pendsv_hook(void) MCUCFG_C51USING
{
}
#endif
+19
View File
@@ -0,0 +1,19 @@
/**************************************************************************//**
* @item CosyOS-III Hook
* @file start_hook.c
* @brief 启动钩子
* @details 在启动任务中被调用,可在此启动用户任务。
* @service uStartTask(task, status); 启动任务
uStartTask_Ready(task); 启动任务并就绪
uStartTask_Suspend(task); 启动任务并挂起
* @author 迟凯峰
* @version V1.2.0
* @date 2025.03.30
******************************************************************************/
#include "CosyOS.H"
__WEAK void start_hook(void)
{
}
+76
View File
@@ -0,0 +1,76 @@
/**************************************************************************//**
* @item CosyOS-III Hook
* @file tick_hook.c
* @brief 滴答钩子
* @details 每个系统滴答周期,在系统滴答中断中都会被调用一次,
适用于每滴答周期/秒/分/时/日/月/年/...做一次的工作。
* @note 1. 如果在滴答钩子中调用服务,应调用滴答API。
2. 如果在滴答钩子中调用自定义函数并且MCU内核为8051,自定义函数
可能需要添加using属性、或声明为相对寄存器访问。
demo1:
void your_function(void) MCUCFG_C51USING {... ...}
demo2:
#pragma NOAREGS
void your_function(void) {... ...}
#pragma AREGS
* @author 迟凯峰
* @version V1.2.0
* @date 2025.03.30
******************************************************************************/
#include "CosyOS.H"
#if SYSCFG_TICKHOOK == __ENABLED__
__WEAK void tick_hook(void) MCUCFG_C51USING
{
if(true){ /* 每滴答周期执行一次 */
}
#if SYSCFG_SOFTRTC == __ENABLED__
if(s_sign_every.halfsec){
s_sign_every.halfsec = false;
if(true){ /* 每半秒执行一次(每半秒,first tick)*/
}
if(s_sign_every.second){
s_sign_every.second = false;
if(true){ /* 每秒钟执行一次(每秒,first tick)*/
}
if(s_sign_every.minute){
s_sign_every.minute = false;
if(true){ /* 每分钟执行一次(每分0秒,first tick*/
}
if(s_sign_every.hour){
s_sign_every.hour = false;
if(true){ /* 每小时执行一次(每时0分0秒,first tick*/
}
if(s_sign_every.day){
s_sign_every.day = false;
if(true){ /* 每天执行一次(每天0时0分0秒,first tick*/
}
if(s_sign_every.month){
s_sign_every.month = false;
if(true){ /* 每月执行一次(每月1日0时0分0秒,first tick*/
}
if(s_sign_every.year){
s_sign_every.year = false;
if(true){ /* 每年执行一次(每年1月1日0时0分0秒,first tick*/
}
}
}
}
}
}
}
}
#endif
}
#endif