首页 > 解决方案 > FreeRtos 上下文切换

问题描述

如果较高优先级的任务正在等待事件并且较低优先级的任务正在运行。在滴答中断高优先级任务准备好之前,那么在滴答中断之前上下文切换将如何发生?直到滴答中断更高优先级的任务将等待滴答中断到上下文切换?

我需要知道在freertos上下文切换只发生在滴答中断?如果不是,那么较高优先级的任务如何在滴答中断之前抢占较低优先级的任务,如果它在滴答中断之前准备好?

标签: freertos

解决方案


如果在 FreeRTOSConfig.h 中将configUSE_PREEMPTION设置为 1,则 FreeRTOS 将始终运行能够运行的最高优先级任务,即使任务可在滴答中断之间运行也是如此。发生这种情况是因为发送解除阻塞任务的事件需要您调用 FreeRTOS API 函数,并且上下文切换发生在 API 函数中。我建议阅读免费书籍以了解有关调度策略的更多信息。

(这里已经提供了回复https://forums.freertos.org/t/freertos-context-switch/8333


推荐阅读