🧩 从零搭建 NuttX 开发环境
📘 30 章 · 完整目录
友好 · 轻松入门嵌入式 RTOS
01
NuttX简介与生态
什么是NuttX · 历史与特点 · IoT/无人机/汽车 · 对比FreeRTOS/Linux
↗
02
开发环境概览
所需工具 · 整体流程 · 宿主机与目标机关系
↗
03
Linux宿主机环境准备
安装Ubuntu/WSL2 · 国内源 · git/make/gcc/python3/cmake/ninja
↗
04
安装交叉编译工具链
交叉编译概念 · ARM GCC工具链 · 环境变量 · 验证
↗
05
获取NuttX源码
git克隆主仓库+apps · 目录结构 (nuttx/apps/tools)
↗
06
配置NuttX构建系统
Kconfig/menuconfig · 选择目标板 · 基础配置
↗
07
编译NuttX
make命令 · 编译输出 · bin/hex · 常见错误
↗
08
烧录与运行
OpenOCD · 烧录固件 · 串口终端 · 启动日志
↗
09
NSH (NuttShell) 入门
NSH概念 · ls/cd/cat/echo/ps/free · 文件系统 · 调试
↗
10
NuttX设备驱动模型
驱动框架 · 注册/注销 · 字符设备 · LED驱动
↗
11
GPIO驱动开发
GPIO子系统 · 中断 · 控制应用 · 按键控制LED
↗
12
UART驱动与串口通信
UART框架 · 配置参数 · 收发程序 · DMA
↗
13
I2C驱动开发
I2C协议 · NuttX I2C框架 · 读写BMP280 · 调试
↗
14
SPI驱动开发
SPI协议 · 驱动框架 · 驱动ST7789 LCD · DMA
↗
15
定时器与PWM
定时器框架 · PWM输出 · 舵机/电机 · 高精度延时
↗
16
ADC与传感器采集
ADC框架 · 模拟信号 · 温度/光照 · DMA连续采样
↗
17
文件系统与存储
文件系统架构 · SPIFFS/FATFS · SD卡 · 日志存储
↗
18
网络协议栈 (lwIP)
lwIP集成 · TCP/UDP Socket · HTTP · MQTT
↗
19
Wi-Fi与蓝牙
ESP8266/ESP32 · AT指令 · 蓝牙BLE基础
↗
20
USB设备与主机
USB设备框架 · 虚拟串口CDC ACM · 主机模式 · U盘
↗
21
多任务与同步
任务创建/删除 · 优先级 · 信号量 · 互斥锁 · 消息队列
↗
22
中断管理与ISR
中断向量表 · 注册ISR · 中断上下文 · 嵌套与优先级
↗
23
内存管理
内存布局 · malloc/free · 内存池 · 泄漏检测
↗
24
功耗管理
低功耗模式 · IDLE/睡眠 · DVFS · 电池优化
↗
25
调试与性能分析
printf/syslog · GDB · perf · 栈溢出检测
↗
26
单元测试与自动化
CUnit · 测试用例 · CI/CD (GitHub Actions) · 自动化构建
↗
27
安全与加密
TLS/SSL (mbedTLS) · 安全启动 · 固件加密 · 防篡改
↗
28
OTA升级
方案设计 · 差分升级(xdelta) · A/B备份 · 断点续传
↗
29
实战项目一:智能家居网关
需求分析 · 硬件选型 · 传感器+Wi-Fi · MQTT · Web配置
↗
30
实战项目二:四轴飞行器飞控
飞控原理 · IMU融合 · PID控制 · PWM电机 · 无线遥控
↗