os_dispatch_select
所属模块:调度系统 | 类型:中断调度控制函数
函数简介
:contentReference[oaicite:0]{index=0} 用于设置调度器使用的中断号,
用于指定系统调度触发所依赖的中断源。
该函数通常在系统初始化阶段配置,用于绑定特定中断作为调度触发点,从而实现基于中断的任务切换机制。
函数原型
char os_dispatch_select(unsigned char interrupt_id);
参数说明
| 参数 |
说明 |
| interrupt_id |
中断号(0~31),用于作为调度触发源 |
返回值
1 表示设置成功,-1 表示参数非法(超出范围)。
源码实现
/*------------------------------------------------------------------------
| FILE DESCRIPTION |
------------------------------------------------------------------------*/
/*------------------------------------------------------------------------
| - File name : os_dispatch_select.c
| - Author : 谭舒
| - Update date : 2026-09-19
| - Copyright(C) : 2026 HRTOS. All rights reserved.
------------------------------------------------------------------------*/
/*------------------------------------------------------------------------
| INCLUDES |
------------------------------------------------------------------------*/
#include"hrtos_internal.h"
/*------------------------------------------------------------------------
| API FUNCTIONS |
------------------------------------------------------------------------*/
/**
* @brief 设置调度器使用的中断编号。
*
* @param[in] interrupt_id 中断编号。
*
* @return 操作结果。
* @retval 1 中断编号设置成功。
* @retval -1 中断编号无效。
*
* @note 有效中断编号范围为 0~31。
*/
char os_dispatch_select(unsigned char interrupt_id)//调度器选择中断号
{
if(interrupt_id>31)
{
return -1;
}
OS_DISPATCH_ID=interrupt_id;
return 1;
}
/*------------------------------------------------------------------------
| END OF FILE: os_dispatch_select.c |
------------------------------------------------------------------------*/
使用示例
void system_init(void)
{
// 将调度绑定到定时器中断
os_dispatch_select(5);
}
注意事项
该接口应在系统初始化阶段调用,运行过程中修改调度中断号可能导致调度行为异常或任务切换不一致。