📘 STM32 → NuttX 迁移
裸机→RTOS 实战
🎯 30章 · 从入门到贡献
01
裸机与RTOS的思维转变
从超级循环到任务调度,理解NuttX的任务、信号量、队列等核心概念。
02
NuttX开发环境搭建
在Ubuntu/Linux下搭建NuttX编译环境,配置工具链,理解Makefile系统。
03
NuttX工程结构解析
NuttX源码目录布局、Kconfig配置系统、Board层、Chip层、Driver层的关系。
04
第一个NuttX应用程序
编写LED闪烁任务,理解任务创建、优先级、任务栈配置。
05
GPIO驱动迁移
将裸机GPIO初始化代码迁移到NuttX,使用GPIO驱动框架。
06
UART串口驱动迁移
从轮询/中断方式迁移到NuttX串口驱动,理解字符设备模型。
07
定时器与PWM迁移
将裸机定时器配置迁移到NuttX定时器驱动,使用PWM输出。
08
ADC采集迁移
将裸机ADC采集代码迁移到NuttX,使用ADC驱动框架。
09
I2C总线驱动迁移
将裸机I2C读写迁移到NuttX,理解I2C驱动框架和总线锁定。
10
SPI总线驱动迁移
将裸机SPI通信迁移到NuttX,理解SPI驱动框架和片选管理。
11
中断管理迁移
从NVIC直接配置迁移到NuttX中断管理,理解中断嵌套和优先级。
12
DMA传输迁移
将裸机DMA传输代码迁移到NuttX,使用DMA驱动框架。
13
FreeRTOS与NuttX对比
任务调度、内存管理、IPC机制异同,帮助FreeRTOS开发者。
14
NuttX文件系统
理解VFS层,挂载SPI Flash、SD卡,实现文件读写。
15
NuttX网络协议栈
配置lwIP,实现TCP/UDP通信,迁移裸机网络代码。
16
NuttX USB设备驱动
配置USB设备模式,实现CDC ACM虚拟串口或MSC存储。
17
NuttX USB主机驱动
配置USB主机模式,驱动USB键盘、鼠标或U盘。
18
NuttX图形框架
使用NX图形引擎,驱动LCD屏幕,实现简单GUI。
19
NuttX音频框架
配置音频驱动,实现音频播放和录音功能。
20
NuttX传感器框架
使用传感器驱动框架,集成加速度计、陀螺仪等。
21
NuttX低功耗管理
配置电源管理,待机/休眠/停止,降低系统功耗。
22
NuttX看门狗与安全
独立看门狗和窗口看门狗,系统异常复位和故障恢复。
23
NuttX调试技巧
NSH命令行、系统日志、断言、栈溢出检测等。
24
NuttX性能优化
任务栈优化、中断延迟、内存池、缓存一致性。
25
NuttX多核与SMP
在STM32H7等双核芯片上配置SMP,多核任务调度。
26
NuttX与裸机混合编程
在NuttX中调用裸机汇编代码,处理关键时序任务。
27
NuttX Bootloader设计
编写引导加载程序,实现固件升级和双备份启动。
28
NuttX单元测试
使用测试框架,编写驱动和应用层单元测试用例。
29
NuttX项目实战
综合案例:智能家居网关,整合WiFi、MQTT、传感器。
30
NuttX社区与贡献
提交补丁、参与代码审查、获取技术支持。