本文主要是介绍zephyr 调度时机,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Threads — Zephyr Project Documentationhttps://docs.zephyrproject.org/latest/reference/kernel/threads/index.html?highlight=preemptive#thread-prioritiesScheduling — Zephyr Project Documentationhttps://docs.zephyrproject.org/latest/reference/kernel/scheduling/index.html?highlight=scheduler
抢占也是发生在调度时间点, scheduler运行过程会把满足抢占条件的任务放到ready_q.cache中中断返回或者reschedule的时候就会发生抢占
_IntExit
current 与ready q cache不为同一个thread 则会起一个pendsv中断
__pendsv
__swap
k_sched_lock机制生效的逻辑如下
update_cache中会判断是否可以调度
thread->base.preempt <= 0x80
k_sched_lock
这篇关于zephyr 调度时机的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!