[uCOS/RTOS] uC/OS-II任务切换关闭方法

[复制链接]
 楼主| 发表于 2025-5-14 13:45 | 显示全部楼层 |阅读模式
方法一:锁定调度器(推荐)
使用 OSSchedLock() 和 OSSchedUnlock() 函数来暂时禁止任务调度。这会阻止任务切换,但允许中断服务程序(ISR)执行。适用于保护关键代码段不被高优先级任务抢占。
  1. OSSchedLock();  // 禁止任务调度
  2. // 执行需要原子操作的代码
  3. OSSchedUnlock(); // 恢复任务调度

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


您需要登录后才可以回帖 登录 | 注册

本版积分规则

2061

主题

14483

帖子

59

粉丝
快速回复 返回顶部 返回列表