os_schedule_request

所属模块:调度系统 | 类型:调度触发函数

API Metadata

函数ID:os_schedule_request
模块:scheduler
类型:schedule trigger
嵌套深度:1

函数简介

os_schedule_request 用于请求系统重新调度任务, 通过强制触发Timer0中断,使系统在中断上下文中执行调度逻辑。

该方式避免直接调用调度器,提高系统安全性与一致性。

函数原型

char os_schedule_request(char id);

参数说明

参数 说明
id 保留参数(当前未使用,用于后续扩展)

返回值

1 - 成功触发调度

源码实现

/*------------------------------------------------------------------------ | FILE DESCRIPTION | ------------------------------------------------------------------------*/ /*------------------------------------------------------------------------ | - File name : schedule_request.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 调度请求设置成功。 * * @note 本函数不直接调用调度器,而是通过触发系统时钟中断, * 使系统在中断处理过程中执行任务调度。 * 调用后设置调度请求标志,并触发 Timer0 中断。 */ char os_schedule_request(char id) //通知系统重新调度--调度触发点 { id = id; /* 保留参数,便于后续扩展 */ OS_SCHED_REASON=1;//调度触发位 TF0=1;//T0中断 return 1; } /*------------------------------------------------------------------------ | END OF FILE: schedule_request.c | ------------------------------------------------------------------------*/

使用示例

void task_yield() { os_schedule_request(0); }

注意事项

该函数不会直接调用调度器,而是通过中断机制触发调度, 必须确保Timer0中断已正确配置。

相关推荐