NuttX 内核 · 源码深潜
📚 30 章完整解析
v1.0
1
NuttX 概述
历史与定位 · 对比Linux/FreeRTOS · 设计哲学
2
源码结构解析
顶级目录 · arch/board布局 · Makefile体系
3
构建系统深度剖析
Kconfig · Makefile编译 · 链接脚本
4
启动流程分析
汇编__start · nx_start · 板级初始化
5
任务控制块 (TCB)
struct tcb_s · 任务状态 · 优先级管理
6
任务调度器
调度器初始化 · 抢占式调度 · 时间片轮转
7
上下文切换
PendSV异常 · 寄存器保存/恢复 · FPU切换
8
信号量机制
sem_wait/sem_post · 优先级反转 · 内部队列
9
互斥锁 (Mutex)
pthread_mutex · 递归锁 · 死锁检测
10
消息队列
mq_open/send/receive · 消息优先级 · 阻塞队列
11
事件组 (Event Group)
事件标志 · 等待多个事件 · 广播机制
12
定时器管理
POSIX定时器 · alarm/sleep · 高精度定时器
13
中断管理
中断向量表 · 中断嵌套 · 临界区保护
14
内存管理 (mm_heap)
伙伴算法 · malloc/free · 内存碎片处理
15
页分配器 (page_alloc)
MMU页分配 · 页面置换 · 用户空间内存
16
文件系统 (VFS)
虚拟文件系统层 · 注册 · file_operations
17
NuttX ROMFS
只读文件系统 · mkromfs · 启动挂载
18
设备驱动框架
inode与驱动注册 · 字符/块设备 · ioctl
19
网络协议栈 (uIP)
uIP架构 · socket接口 · TCP/IP处理
20
网络驱动接口
netdev注册 · 数据包收发 · 链路层
21
用户空间与系统调用
SVC异常 · syscall表 · 用户/内核态切换
22
进程与线程管理
task_create · pthread_create · 地址空间
23
信号处理
sigaction · 信号发送/递送 · 信号栈帧
24
工作队列 (Work Queue)
work_queue · 延迟工作 · 内核线程池
25
低功耗管理
IDLE循环 · 休眠/唤醒 · 电源管理框架
26
调试与跟踪
syslog · assert · 栈回溯 (backtrace)
27
性能优化
调度延迟 · 内存分配 · 中断响应优化
28
安全机制
MPU保护 · 系统调用审计 · 栈溢出检测
29
SMP多核支持
CPU亲和性 · 核间中断IPI · 共享资源同步
30
实战案例
STM32移植 · 添加自定义驱动 · 性能调优