RT-Thread STM32F407
1、时间片调度算法issue解决办法
极端情况
实例
上面有惊无险,但是也提示我们考虑极端情况: 同样是刚延时,未来得及调度被systick打断,碰巧时间片又用完了,会有什么情况
再次修改thread4, 把它的时间片改为1,测试一下
好家伙,A2时刻thread4直接罢工了。
分析
继续dubug找原因,同样是带着suspend状态进入tick中断,这次thred4时间片使用完,置位RT_THREAD_STAT_YIELD,进入rt_schedule调度时
rt_current_thread = thred4
rt_current_thread->stat = RT_THREAD_STAT_YIELD |RT_THREAD_SUSPEND (先suspend然后 yield)
原作者:blta
更多回帖