os_task_get_priority
所属模块:任务管理 | 类型:调度查询函数
函数简介
os_task_get_priority 用于查询指定任务的当前优先级。
支持普通任务与高优先级任务的区分,其中普通任务优先级范围为 0-7,高优先级任务为系统调度级别任务。
该接口主要用于调度分析与系统状态调试。
函数原型
char os_task_get_priority(unsigned char id);
参数说明
| 参数 |
说明 |
| id |
任务ID(0~OS_PROCESS_MAX+1) |
源码实现
/*------------------------------------------------------------------------
| 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);
// 用于调度分析
}
注意事项
普通任务优先级存储在系统控制字中,高优先级任务返回固定调度等级。
返回值仅用于调试与调度分析,不建议直接修改。