📘 NuttX 调度·优先级
精讲 · 30 章 从入门到实战
🧑🎓
友好 · 全彩笔记
01
NuttX实时操作系统概述
历史·对比FreeRTOS/Linux · 无人机/IoT
02
任务控制块 (TCB) 深度解析
struct tcb_s · 状态迁移 · 优先级字段
03
优先级机制详解
静态/动态 · 位图算法 · 优先级上限协议
04
就绪列表与调度决策
g_readytorun · 队列操作 · 任务选择
05
基于优先级的抢占式调度
抢占点 · sched_lock · 优先级反转
06
轮转调度 (RR) 与时间片
CONFIG_RR_INTERVAL · 混合策略
07
空闲任务与系统健康度
idle · CPU使用率 · Tickless低功耗
08
任务创建与优先级分配
task_create/kthread · 优先级继承 · 初始化
09
任务删除与资源回收
task_delete · 延迟删除 · TCB/栈释放
10
任务挂起与恢复
suspend/resume · 挂起状态影响 · 反转
11
任务优先级动态调整
chgprio() · 重新调度 · 实时/普通
12
信号量与优先级管理
sem_wait继承 · sem_post唤醒 · 反转案例
13
互斥锁 (Mutex) 与优先级协议
继承/上限协议 · 死锁预防
14
条件变量与等待队列
pthread_cond_wait · 优先级排序 · 对比
15
消息队列与优先级
mq_send优先级 · 排序 · 唤醒策略
16
工作队列 (Work Queue) 调度
内核/用户 · 优先级顺序 · 协同
17
中断处理与任务调度
上半部/下半部 · 返回决策 · 触发切换
18
系统时钟与Tick调度
时钟中断 · Tick累加 · Tickless优化
19
SMP多核调度基础
SMP架构 · CPU亲和性 · 就绪列表
20
SMP多核调度进阶
跨核迁移 · 负载均衡 · 优先级挑战
21
实时性分析与调度延迟
中断/调度延迟 · 上下文切换 · 优化技巧
22
调度器锁与临界区
sched_lock嵌套 · 临界区影响 · 避免长时间锁
23
任务栈管理与优先级
栈溢出检测 · 优先级分配 · MPU/MMU
24
任务通知 (Task Notification)
轻量信号量 · 优先级唤醒 · 性能对比
25
POSIX线程 (pthread) 调度
SCHED_FIFO/RR/OTHER · 优先级设置 · 兼容性
26
调度器性能调优
CONFIG_SCHED_* · 位图优化 · 热点函数
27
任务调试与跟踪
sched_dump · NSH调试 · Trace工具
28
典型问题案例分析
优先级反转 · 死锁 · 饥饿问题
29
调度器扩展与定制
EDF策略 · 位图修改 · 钩子函数
30
综合实战:无人机飞控系统
任务划分 · 传感器/姿态调度 · 优化
⚙️