os_task_is_valid

所属模块:任务管理 | 类型:任务状态校验函数

API Metadata

函数ID:os_task_is_valid
模块:task
类型:task validation
嵌套深度:1

函数简介

os_task_is_valid 用于判断指定任务是否已经注册或有效存在。

该接口用于任务调度前的合法性检查,防止对未注册任务进行操作。

支持普通任务与高速任务的统一检测,是系统资源安全访问的重要保护机制。

函数原型

signed char os_task_is_valid(u8 id);

参数说明

参数 说明
id 任务ID(0~OS_PROCESS_MAX+1)

返回值

-1:参数异常
0:任务未注册
1:任务已注册

源码实现

/*------------------------------------------------------------------------ | FILE DESCRIPTION | ------------------------------------------------------------------------*/ /*------------------------------------------------------------------------ | - File name : task_is_valid.c | - Author : 谭舒 | - Update date : 2026-09-19 | - Copyright(C) : 2026 HRTOS. All rights reserved. ------------------------------------------------------------------------*/ /*------------------------------------------------------------------------ | INCLUDES | ------------------------------------------------------------------------*/ #include "hrtos_internal.h" /*------------------------------------------------------------------------ | API FUNCTIONS | ------------------------------------------------------------------------*/ /** * @brief 查询指定任务是否已注册。 * * @param[in] id 任务编号。 * * @return 任务注册状态。 * @retval 1 任务已注册。 * @retval 0 任务未注册。 * @retval -1 任务编号无效。 * * @note 该接口同时支持标准任务和高速任务的注册状态查询。 */ signed char os_task_is_valid(u8 id)//任务是否存在/注册检查-1参数异常,0未注册,1已注册 { if(id>OS_PROCESS_MAX+1) { return -1; } if(id==OS_PROCESS_MAX+1) { if(OS_SP_KUAI_BEI[1]) { return 1; } else { return 0; } } if(id==OS_PROCESS_MAX) { if(OS_SP_KUAI_BEI[0]) { return 1; } else { return 0; } } if(OS_PROCESS_OK[id]!=0)/*已注册*/ { return 1; } return 0; } /*------------------------------------------------------------------------ | END OF FILE: task_is_valid.c | ------------------------------------------------------------------------*/

使用示例

void debug_valid() { if(os_task_is_valid(3)) { // 任务存在 } }

注意事项

该函数仅用于任务存在性判断,不会修改任务状态。 高速任务与普通任务的判定逻辑不同,需注意区分处理方式。

相关推荐