前文参考
[1] Zephyr内核调度之调度方式与时机
[2] Zephyr线程阻塞和超时机制分析
[3] Zephyr用户模式-系统调用
[4] Zephyr内核调度之代码分析2-调度关键函数
[5] Zephyr内核调度之代码分析3–线程睡眠和挂起
在[1]中提到了17种调度时机,本文分析其中1种:设置优先级
- z_impl_k_thread_priority_set
由于系统调用的关系可被应用调用的内核函数实际实现对应到sched.c中(参考[3]):
k_thread_priority_set->z_impl_k_thread_priority_set
1 | void z_impl_k_thread_priority_set(k_tid_t thread, int prio) |
dequeue_thread,queue_thread,update_cache参考[4].