os_dispatch_id

所属模块:调度管理 | 类型:调度配置函数

函数简介

os_dispatch_id 用于设置 HRTOS 调度器所使用的中断号, 是调度触发机制中的关键配置接口。

在实时操作系统中,任务调度通常由定时中断或外部中断触发, 该函数允许开发者灵活指定调度中断来源,从而适配不同硬件平台或应用需求。

函数原型

char os_dispatch_id(unsigned char INTERRUPT_ID);

参数说明

参数 说明
INTERRUPT_ID 中断号(取值范围:0 ~ 31)

返回值

0 表示设置成功,-1 表示参数非法(超出允许范围)。

核心机制解析

1. 参数合法性校验

函数首先检查中断号是否在允许范围内(0~31), 防止非法配置导致系统异常。

if(INTERRUPT_ID > 31) { return -1; }

2. 调度入口绑定

当参数合法时,系统将中断号写入内部变量, 用于后续调度器绑定中断入口。

OS_DISPATCH_ID = INTERRUPT_ID;

调度器将在指定中断触发时调用 os_switch, 从而完成任务切换流程。

使用示例

void main() { // 设置调度使用定时器0中断 os_dispatch_id(1); // 开启RTOS os_rtos(1); while(1) { } }

典型使用场景

注意事项

中断号必须与实际硬件中断配置一致,否则调度器无法正常触发。
建议在系统初始化阶段完成设置,运行过程中不建议频繁修改。

相关推荐