os_task_get_priority

所属模块:任务管理 | 类型:调度查询函数

API Metadata

函数ID:os_task_get_priority
模块:task
类型:priority query
嵌套深度:1

函数简介

os_task_get_priority 用于查询指定任务的当前优先级。

支持普通任务与高优先级任务的区分,其中普通任务优先级范围为 0-7,高优先级任务为系统调度级别任务。

该接口主要用于调度分析与系统状态调试。

函数原型

char os_task_get_priority(unsigned char id);

参数说明

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

返回值

≥0:任务优先级
-1:非法任务ID

源码实现

/*------------------------------------------------------------------------ | FILE DESCRIPTION | ------------------------------------------------------------------------*/ /*------------------------------------------------------------------------ | - File name : task_get_priority.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 0~7 标准任务的自然优先级。 * @retval 8 高速任务优先级。 * @retval -1 任务编号无效。 * * @note 标准任务的优先级范围为 0~7。 * 高速任务使用固定的高优先级。 * 中断处理函数不属于任务,不参与任务优先级查询。 */ char os_task_get_priority(unsigned char id) //查询任务编号为id的优先级(0-7自然优先级,8高优先级) { u8 i; if(id>OS_PROCESS_MAX+1)//错误 { return -1; } if(id>1)&7; return i; } return OS_SCHED_LEVEL_MAX-2; //高优先级任务,中断没有 } /*------------------------------------------------------------------------ | END OF FILE: task_get_priority.c | ------------------------------------------------------------------------*/

使用示例

void debug_priority() { char p; p = os_task_get_priority(2); // 用于调度分析 }

注意事项

普通任务优先级存储在系统控制字中,高优先级任务返回固定调度等级。 返回值仅用于调试与调度分析,不建议直接修改。

相关推荐