Zephyr 调度·多任务
实战 30 章
🎯 内核机制 · 友好
01
Zephyr内核概述
RTOS·架构·调度
Zephyr RTOS简介、内核架构、调度器基本概念
02
任务与线程
定义·状态·优先级
线程定义、线程状态、线程优先级、线程栈
03
线程创建与管理
k_thread_create
k_thread_create、线程属性、线程生命周期
04
调度策略
抢占·时间片·协作
基于优先级的抢占式调度、时间片轮转、协作式调度
05
调度器内部机制
就绪队列·上下文
就绪队列、调度点、上下文切换
06
线程同步之信号量
k_sem_init/take/give
信号量原理、k_sem_init、k_sem_take、k_sem_give
07
线程同步之互斥量
优先级继承
互斥量原理、优先级继承、k_mutex_lock/unlock
08
线程同步之条件变量
k_condvar_wait/signal
条件变量机制、k_condvar_wait、k_condvar_signal
09
线程同步之屏障
k_barrier_init/wait
屏障概念、k_barrier_init、k_barrier_wait
10
消息队列
k_msgq_init/put/get
消息队列原理、k_msgq_init、k_msgq_put、k_msgq_get
11
邮箱
k_mbox_put/get
邮箱机制、k_mbox_put、k_mbox_get
12
管道
k_pipe_put/get
管道原理、k_pipe_put、k_pipe_get
13
FIFO
k_fifo_init/put/get
FIFO数据结构、k_fifo_init、k_fifo_put、k_fifo_get
14
栈数据结构
k_stack_init/push/pop
栈数据结构、k_stack_init、k_stack_push、k_stack_pop
15
中断管理
ISR·优先级·嵌套
中断上下文、中断优先级、中断嵌套、ISR编写规范
16
中断与线程同步
信号量·消息
中断中发送信号量、中断中发送消息
17
工作队列
k_work_init/submit
工作队列概念、k_work_init、k_work_submit、系统工作队列
18
定时器
k_timer_init/start/stop
定时器原理、k_timer_init、k_timer_start、k_timer_stop
19
内存管理
k_malloc/k_free
动态内存分配、内存池、内存块、k_malloc、k_free
20
内存池高级应用
k_mem_pool_init
k_mem_pool_init、内存块分配策略、碎片管理
21
多核调度基础
SMP·CPU亲和性
SMP架构、CPU亲和性、跨核同步
22
多核调度实战
任务分配·核间通信
任务分配策略、核间通信、缓存一致性
23
功耗管理
Tickless·电源状态
Tickless空闲、电源状态管理、调度器与功耗
24
实时性分析
调度延迟·WCET
调度延迟、中断延迟、最坏情况执行时间
25
优先级反转与解决方案
继承·天花板
优先级反转场景、优先级继承、优先级天花板
26
死锁检测与预防
死锁条件·预防
死锁条件、死锁预防策略、Zephyr中的死锁避免
27
实战1:传感器采集
信号量+消息队列
传感器数据采集系统(多线程+信号量+消息队列)
28
实战2:智能家居
互斥量+定时器
智能家居控制中心(多线程+互斥量+定时器)
29
实战3:数据记录仪
文件系统+内存管理
数据记录仪(多线程+文件系统+内存管理)
30
实战4:网络协议栈
邮箱+工作队列
网络协议栈任务设计(多线程+邮箱+工作队列)