📘 STM32 & NuttX 实战
30章 · 从零到项目
🎯 友好 · 明快色系
01
嵌入式系统概述
什么是嵌入式系统
组成与分类
STM32系列
02
NuttX实时操作系统
NuttX简介
特点与架构
RTOS比较
03
开发环境搭建 (上)
Linux虚拟机
Ubuntu配置
Git/Make/GCC
04
开发环境搭建 (下)
ARM交叉编译链
OpenOCD
STM32CubeProg
05
获取NuttX源码
Git仓库克隆
目录结构
版本与分支
06
NuttX配置系统
Kconfig机制
menuconfig
defconfig
07
STM32芯片支持
支持情况
芯片级配置
外设驱动框架
08
构建系统详解
Makefile体系
编译流程
链接脚本
09
首次编译实战
选择开发板
配置与编译
常见错误
10
烧录与调试
OpenOCD烧录
GDB调试
串口/LED验证
11
GPIO驱动开发
GPIO子系统
引脚配置
按键中断
12
UART驱动开发
UART框架
串口配置
DMA/回环
13
SPI驱动开发
SPI协议
驱动接口
Flash读写
14
I2C驱动开发
I2C协议
驱动框架
温度传感器
15
定时器与PWM
定时器驱动
PWM输出
呼吸灯
16
ADC与DAC
ADC配置
多通道采集
电压测量
17
文件系统移植
NuttX文件系统
SPIFFS/FATFS
挂载操作
18
网络协议栈
lwIP集成
Socket编程
TCP服务器
19
USB设备驱动
USB设备栈
CDC ACM
USB键盘
20
SD卡与存储
SDIO驱动
SD卡初始化
文件系统挂载
21
任务管理
任务创建/删除
优先级与状态
调度策略
22
同步与通信
信号量/互斥锁
消息队列
生产者消费者
23
内存管理
内存池
动态分配
栈溢出检测
24
中断管理
中断向量表
优先级/嵌套
延迟优化
25
功耗管理
低功耗模式
时钟门控
电池供电
26
Bootloader开发
启动流程
分区表/升级
安全启动
27
性能优化
编译优化
代码尺寸/速度
启动时间
28
调试技巧
断言/日志
性能分析
内存泄漏检测
29
项目实战 (上)
需求分析
系统设计
模块划分
30
项目实战 (下)
编码实现
集成测试
项目总结