转行小白一枚,通过博客记录个人学习,望更多博友多多指点,感激不尽!
RTOS系统的核心是任务管理,任务管理的核心是任务切换;任务切换决定了任务的执行顺序,任务切换效率的高低也决定了一块系统的性能。
PendSV异常
FreeRTOS任务切换场合
PendSV中断服务函数
查找下一个要运行的任务
一、PendSV异常
PendSV(可挂起的系统调用)异常对OS操作非常重要,其优先级可通过编程设置;若将PendSV设置为最低的异常优先级,可以让PendSV异常处理在所有其他中断处理完成后执行,对上下文切换非常有用,也是OS设计中的关键。
上下文切换被触发的场合:
*执行一个系统调用
*系统滴答定时器(SysTick)中断
在OS中,任务调度器决定是否应该执行上下文切换;若中断请求(IRQ)在SysTick异常前产生,则SysTick异常可能会抢占IRQ的处理,OS不应该执行上下文切换,否则中断请求IRQ处理就会被延迟,当存在活跃的异常服务时,设计默认不允许返回到线程模式,若存在活跃中断服务,且OS试图返回到线程模式,则将触发用法fault。
(二)FreeRTOS学习之FreeRTOS任务切换
最新推荐文章于 2024-04-18 16:52:38 发布