os_task_yield

所属模块:任务管理 | 类型:CPU让出函数

API Metadata

函数ID:os_task_yield
模块:task
类型:yield / cooperative scheduling trigger
嵌套深度:1

函数简介

os_task_yield 用于当前任务主动让出CPU执行权。

该接口不会改变任务状态,仅触发一次系统调度,使调度器重新选择任务执行。

常用于协作式调度、循环任务节拍控制或降低实时占用时间。

函数原型

void os_task_yield(void);

参数说明

无参数。

返回值

无返回值。

源码实现

/*------------------------------------------------------------------------ | FILE DESCRIPTION | ------------------------------------------------------------------------*/ /*------------------------------------------------------------------------ | - File name : task_yield.c | - Author : 谭舒 | - Update date : 2026-09-19 | - Copyright(C) : 2026 HRTOS. All rights reserved. ------------------------------------------------------------------------*/ /*------------------------------------------------------------------------ | INCLUDES | ------------------------------------------------------------------------*/ #include "hrtos_internal.h" /*------------------------------------------------------------------------ | API FUNCTIONS | ------------------------------------------------------------------------*/ /** * @brief 当前任务主动让出 CPU,并请求系统进行任务调度。 * * @param[in] None * * @return None。 * * @note 调用该接口后设置调度请求,并触发 Timer0 中断, * 由系统在中断处理过程中执行任务调度。 */ void os_task_yield()//主动挂起自己,让出CPU触发调度 { OS_SCHED_REASON=1;//调度触发位 TF0=1;//T0中断 } /*------------------------------------------------------------------------ | END OF FILE: task_yield.c | ------------------------------------------------------------------------*/

使用示例

void task_loop() { while(1) { // 执行一段逻辑 os_task_yield(); } }

注意事项

yield 不会改变任务状态,仅触发调度器重新选择任务。 如果没有其他就绪任务,当前任务可能继续执行。

相关推荐