打印
[uCOS/RTOS]

uC/OS-II任务切换关闭方法

[复制链接]
741|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
forgot|  楼主 | 2025-5-14 13:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
方法一:锁定调度器(推荐)
使用 OSSchedLock() 和 OSSchedUnlock() 函数来暂时禁止任务调度。这会阻止任务切换,但允许中断服务程序(ISR)执行。适用于保护关键代码段不被高优先级任务抢占。
OSSchedLock();  // 禁止任务调度
// 执行需要原子操作的代码
OSSchedUnlock(); // 恢复任务调度

方法二:关闭中断
使用宏 OS_ENTER_CRITICAL()OS_EXIT_CRITICAL() 关闭中断,完全阻止任务切换和中断触发。适用于极短的关键操作。
OS_ENTER_CRITICAL(); // 关闭中断
// 执行关键操作(如修改内核数据结构)
OS_EXIT_CRITICAL();  // 恢复中断


使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1976

主题

14128

帖子

58

粉丝