STM32与FreeRTOS联合调试指南

📚 共计 30 章节
01
调试环境搭建
硬件准备(J-Link/ST-Link)、软件安装(Keil/IAR/STM32CubeIDE)、调试器驱动配置。
环境IDE驱动
02
FreeRTOS内核源码获取与移植
从官网下载源码、关键文件说明(list.c, tasks.c, queue.c)、移植步骤详解。
源码移植内核
03
任务创建与删除
xTaskCreate API详解、任务句柄、任务参数传递、vTaskDelete使用场景。
API任务句柄
04
任务调度机制
抢占式调度、时间片轮转、协作式调度、调度器启动与挂起。
调度抢占时间片
05
任务状态与切换
运行态、就绪态、阻塞态、挂起态、状态转换图。
状态切换阻塞
06
空闲任务与钩子函数
空闲任务的作用、空闲任务钩子配置、低功耗应用。
空闲钩子低功耗
07
任务优先级与堆栈
优先级配置原则、堆栈大小估算、堆栈溢出检测。
优先级堆栈溢出
08
队列(Queue)基础
队列创建、发送与接收、队列阻塞机制。
队列IPC阻塞
09
队列进阶
队列集、队列覆盖、队列传递大块数据。
队列集覆盖大数据
10
信号量(Semaphore)
二值信号量、计数信号量、信号量与队列的关系。
信号量同步二值
11
互斥量(Mutex)
优先级继承、死锁预防、递归互斥量。
互斥死锁递归
12
事件标志组(Event Group)
事件位操作、同步多个任务。
事件标志同步
13
任务通知(Task Notification)
轻量级IPC、通知值操作、性能对比。
通知轻量IPC
14
软件定时器(Software Timer)
自动重载与单次模式、定时器回调、定时器守护任务。
定时器回调守护
15
内存管理
heap_1到heap_5对比、内存碎片问题、自定义内存分配器。
内存heap碎片
16
中断管理
FreeRTOS中断安全API、中断嵌套、临界区保护。
中断临界区嵌套
17
Tickless低功耗模式
原理、配置步骤、唤醒源处理。
低功耗Tickless唤醒
18
调试手段之串口打印
重定向printf、格式化输出、时间戳标记。
串口printf时间戳
19
调试手段之GPIO翻转
逻辑分析仪抓取、任务执行时间测量。
GPIO逻辑分析测量
20
调试手段之FreeRTOS+Trace
Tracealyzer工具、事件记录、可视化分析。
Trace可视化分析
21
调试手段之SEGGER SystemView
配置、实时任务状态监控、性能瓶颈定位。
SystemView监控性能
22
调试手段之堆栈使用统计
uxTaskGetStackHighWaterMark、堆栈优化。
堆栈HighWater优化
23
调试手段之运行时统计
vTaskGetRunTimeStats、任务CPU占用率。
运行时CPU统计
24
常见死锁与优先级反转
场景复现、调试方法、解决方案。
死锁优先级反转调试
25
常见内存泄漏
动态创建未删除、队列/信号量泄漏、检测方法。
内存泄漏检测动态
26
常见HardFault处理
原因分析、故障寄存器解读、回溯调用栈。
HardFault寄存器回溯
27
多核与SMP调试
STM32H7双核架构、核间通信、调试注意事项。
多核SMPH7
28
实战案例1:多传感器数据采集系统
ADC+DMA+FreeRTOS。
实战ADCDMA
29
实战案例2:WiFi通信任务
ESP8266/ESP32 AT指令集+任务管理。
WiFiESPAT
30
实战案例3:智能小车控制系统
电机控制+避障+远程控制。
小车电机避障