os_idle_hook_register
所属模块:系统内核 | 类型:Idle Hook注册函数
函数简介
:contentReference[oaicite:0]{index=0} 用于注册系统空闲任务(Idle Task)的回调函数。
当系统没有可运行任务时,将自动执行用户注册的 hook 函数。
该机制通常用于低功耗处理、后台维护、状态统计等非实时关键操作,是系统扩展能力的重要接口之一。
函数原型
void os_idle_hook_register(void (*hook)(void));
参数说明
| 参数 |
说明 |
| hook |
用户注册的回调函数指针,在系统 Idle 状态时被周期性调用 |
源码实现
/*------------------------------------------------------------------------
| FILE DESCRIPTION |
------------------------------------------------------------------------*/
/*------------------------------------------------------------------------
| - File name : idle_hook_register.c
| - Author : 谭舒
| - Update date : 2026-09-19
| - Copyright(C) : 2026 HRTOS. All rights reserved.
------------------------------------------------------------------------*/
/*------------------------------------------------------------------------
| INCLUDES |
------------------------------------------------------------------------*/
#include"hrtos_internal.h"
/*------------------------------------------------------------------------
| API FUNCTIONS |
------------------------------------------------------------------------*/
/**
* @brief 注册 Idle 任务钩子函数。
*
* @param[in] hook Idle 任务钩子函数指针。
*
* @return None。
*
* @note 系统处于空闲状态时,内核调用已注册的 Idle Hook。
* 传入 NULL 可取消已注册的 Idle Hook。
*/
void os_idle_hook_register(void (*hook)(void))//挂在idle
{
g_idle_hook = hook;
}
/*------------------------------------------------------------------------
| END OF FILE: idle_hook_register.c |
------------------------------------------------------------------------*/
使用示例
void my_idle_task(void)
{
// 空闲状态下执行低优先级任务
}
void app_init(void)
{
os_idle_hook_register(my_idle_task);
}
注意事项
Idle Hook 会在系统空闲时频繁执行,不应在其中进行阻塞操作或长时间计算,否则可能影响实时任务调度性能。