⚡ STM32 · NuttX 实战
30章 硬核目录
📘 风格 · 全彩卡片
01
环境搭建篇
Toolchain选择与配置 (ARM GCC / IAR / Keil)
NuttX源码下载与分支选择
Windows/Linux/macOS编译环境搭建
常见编译错误 (头文件/链接器脚本) 解决
02
配置系统篇
menuconfig图形化配置详解
Board-Config vs Chip-Config
STM32时钟树配置 (HSE/LSE/PLL)
外设使能与引脚复用冲突排查
03
启动流程篇
启动流程全解析 (Reset_Handler→__start→nx_start)
Bootloader与APP分区设计
链接脚本(.ld)修改实战
启动阶段HardFault调试技巧
04
内存管理篇
NuttX内存布局 (Kernel vs User Space)
堆栈溢出检测与定位
MMU/MPU配置常见问题
DMA内存对齐与Cache一致性
05
任务调度篇
任务创建/删除的坑 (优先级反转/栈不足)
任务状态切换与调试 (ps/tasklist)
信号量与互斥锁死锁案例分析
消息队列与事件组使用误区
06
中断管理篇
中断优先级分组与嵌套规则
ISR编写规范
中断延迟优化与测量
中断上下文系统调用限制
07
时钟与定时器篇
系统时钟节拍(Tick)配置与精度
硬件定时器(TIM/PWM)驱动调试
看门狗(IWDG/WWDG)配置与喂狗
RTC与低功耗唤醒问题
08
GPIO与外部中断篇
GPIO初始化与模式配置 (推挽/开漏/上拉/下拉)
外部中断(EXTI)触发边沿与消抖
GPIO模拟I2C/SPI时序的坑
引脚复用功能冲突排查
09
UART串口通信篇
串口驱动框架 (serial.c) 解析
波特率误差计算与修正
DMA+IDLE中断接收不定长数据
串口缓冲区溢出与流控配置
10
SPI总线篇
SPI主从模式与时钟极性/相位匹配
SPI DMA传输 vs 中断传输
多设备片选管理与总线冲突
SPI Flash驱动(MTD)调试
11
I2C总线篇
I2C时序计算与速率配置
从机地址与10位地址模式
总线锁死恢复与超时处理
常见外设(MPU6050/OLED)驱动移植
12
ADC与DAC篇
ADC分辨率与采样率配置
多通道扫描与DMA传输
ADC校准与参考电压问题
DAC输出波形失真分析与解决
13
PWM与电机控制篇
PWM频率与占空比配置
互补PWM与死区插入
电机控制库 (Motor Control) 使用
霍尔传感器与编码器接口调试
14
USB设备篇
USB Device Stack配置
CDC ACM虚拟串口实现
HID设备 (键盘/鼠标) 开发
枚举失败与描述符错误排查
15
USB主机篇
USB Host Stack配置
Mass Storage Class (U盘) 驱动
HUB支持与多设备管理
USB主机电源管理问题
16
文件系统篇
NuttX VFS架构
ROMFS/PROCFS/TMPFS/SPIFFS/FATFS配置
挂载失败与坏块管理
Flash磨损均衡与掉电保护
17
网络协议栈篇
LwIP/uIP配置与调优 (MSS/窗口/超时)
Socket编程常见错误 (EINTR/EAGAIN)
DHCP/DNS/TFTP/HTTP调试
网络栈参数优化
18
无线通信篇
WiFi模块 (ESP8266/ESP32 AT) 驱动
蓝牙 (BlueZ/NimBLE) 协议栈配置
LoRa/Sigfox/NB-IoT模块驱动
丢包与重传策略
19
图形与显示篇
LCD驱动 (ILI9341/ST7789) 移植
LVGL图形库集成与优化
触摸屏 (FT5x06/XPT2046) 校准
帧率优化与内存占用控制
20
音频处理篇
I2S音频接口配置
音频编解码器 (WM8960/CS43L22) 驱动
音频播放 (WAV/MP3) 与录音
音频延迟与噪声排查
21
传感器驱动篇
常见传感器 (温度/湿度/气压/IMU) 移植
数据融合 (卡尔曼/互补滤波)
中断与轮询模式选择
校准与误差补偿
22
低功耗设计篇
STM32低功耗模式 (Sleep/Stop/Standby)
NuttX PM框架 (Power Manager)
外设时钟门控与电源域管理
唤醒源配置与调试
23
调试与日志篇
syslog系统配置与使用
JTAG/SWD调试器 (JLink/ST-Link) 技巧
GDB调试NuttX内核与任务
性能分析 (Profiling) 与栈使用统计
24
安全与加密篇
安全框架 (TLS/DTLS) 配置
加密库 (mbedTLS/OpenSSL) 集成
安全启动 (Secure Boot) 与固件签名
Flash加密与防篡改设计
25
多核与SMP篇
STM32H7双核 (M7+M4) 架构与通信
NuttX SMP配置与任务亲和性
核间通信 (Mailbox/Shared Memory)
多核调试与同步问题
26
RTOS特性篇
实时性测试 (中断延迟/任务切换时间)
优先级反转与优先级继承协议
工作队列 (Work Queue) 使用
Tickless模式与低功耗定时器
27
驱动开发篇
NuttX驱动框架解析
字符设备驱动开发实战
块设备驱动开发实战
驱动注册与卸载常见问题
28
应用开发篇
NSH/Builtin应用框架解析
应用入口与参数传递
应用间通信 (IPC) 机制
应用打包与固件升级
29
测试与验证篇
单元测试框架 (Unity/CMock) 使用
硬件在环测试 (HIL) 搭建
压力测试与稳定性测试
回归测试与持续集成 (CI)
30
综合实战篇
智能家居网关设计 (STM32+NuttX)
无人机飞控系统
工业数据采集器
项目移植经验总结与坑汇总