os_wait_signal

所属模块:时间管理 | 类型:任务同步函数

函数简介

os_wait_signal 用于让当前任务等待外部信号触发, 在等待期间任务会被阻塞并让出CPU执行权。

该函数适用于任务之间的简单同步场景, 当信号到达后任务将被重新调度执行。

函数原型

char os_wait_signal() reentrant;

参数说明

无参数。

返回值

返回 OS_WAIT_SIGNAL 表示成功收到信号。

源码实现

char os_wait_signal() reentrant { EA = 0; OS_WAIT_DI[OS_YUNXING_BIANHAO] = 0; OS_PEOCESS_OK[OS_YUNXING_BIANHAO] &= 0xFE; os_switch(); EA = 1; return OS_WAIT_SIGNAL; }

使用示例

void task1() { while(1) { // 等待信号 os_wait_signal(); // 收到信号后执行 } }

注意事项

该函数会使任务进入阻塞状态,必须配合信号触发机制使用,否则任务将一直等待。

相关推荐