uC/OS-II任务切换关闭方法
方法一:锁定调度器(推荐)使用 OSSchedLock() 和 OSSchedUnlock() 函数来暂时禁止任务调度。这会阻止任务切换,但允许中断服务程序(ISR)执行。适用于保护关键代码段不被高优先级任务抢占。OSSchedLock();// 禁止任务调度// 执行需要原子操作的代码
OSSchedUnlock(); // 恢复任务调度
方法二:关闭中断使用宏 OS_ENTER_CRITICAL() 和 OS_EXIT_CRITICAL() 关闭中断,完全阻止任务切换和中断触发。适用于极短的关键操作。OS_ENTER_CRITICAL(); // 关闭中断
// 执行关键操作(如修改内核数据结构)
OS_EXIT_CRITICAL();// 恢复中断
页:
[1]