从裸机到RTOS:飞控底层驱动移植全流程

📚 共计 30 章节
01
课程导论:为什么需要RTOS?
从裸机到RTOS的思维转变,理解实时内核的价值。
思维转变导论
02
硬件抽象层(HAL)设计
如何隔离MCU寄存器操作,构建可移植驱动层。
HAL寄存器
03
GPIO驱动移植
从裸机轮询到RTOS任务化,GPIO中断与输出。
GPIO任务化
04
UART驱动移植
中断接收与DMA传输在RTOS中的实现。
UARTDMA
05
I2C/SPI总线驱动
多任务环境下的总线互斥与同步机制。
I2CSPI互斥
06
定时器与PWM驱动
RTOS软件定时器 vs 硬件定时器选型与适配。
定时器PWM
07
ADC与传感器驱动
数据采集任务的阻塞与非阻塞设计。
ADC传感器
08
外部中断与事件驱动
信号量与事件标志组的应用实战。
中断信号量
09
看门狗与系统安全
独立看门狗与窗口看门狗的RTOS适配。
看门狗安全
10
内存管理
RTOS堆栈配置与内存碎片问题。
内存堆栈
11
任务创建与管理
飞控中典型任务的划分:姿态解算、控制输出、通信。
任务飞控
12
任务间通信
队列、邮箱、管道在飞控数据流中的应用。
队列邮箱
13
任务同步
互斥锁、递归锁解决资源竞争(以I2C总线为例)。
互斥锁I2C
14
时间管理
系统节拍、任务延时与绝对时间唤醒。
时间管理节拍
15
中断管理
中断嵌套、中断优先级与RTOS临界区。
中断临界区
16
时钟同步
PLL配置与RTOS系统时钟的校准。
时钟PLL
17
传感器数据采集
MPU6050/BMI088的I2C/SPI驱动移植。
MPU6050BMI088
18
磁力计驱动
AK8963/IST8310的数据融合与校准。
磁力计校准
19
气压计驱动
MS5611/BMP280的时序优化。
气压计时序
20
遥控器接收机
SBUS/PPM协议解析与DMA接收。
SBUSPPMDMA
21
电机驱动
PWM输出与ESC校准的RTOS实现。
电机ESC
22
姿态解算任务
Mahony/Complementary滤波器的任务化。
姿态解算滤波器
23
控制环路
PID控制器的定时触发与任务优先级设计。
PID控制
24
日志与调试
SEGGER RTT/UART日志在RTOS中的非阻塞实现。
日志RTT
25
参数管理系统
EEPROM/Flash读写与任务安全。
参数Flash
26
启动流程
从Bootloader到RTOS多任务启动。
启动Bootloader
27
错误处理
HardFault处理与任务看门狗。
HardFault看门狗
28
性能优化
任务栈深度计算与CPU负载评估。
性能栈深度
29
低功耗设计
RTOS空闲任务与飞控待机模式。
低功耗待机
30
综合实战
将PX4/ArduPilot底层驱动移植到FreeRTOS。
PX4FreeRTOS