FreeRTOS任务堆栈优化与调试实战

📚 共计 30 章节
01
堆栈基础
任务堆栈的作用 · 堆栈溢出原理 · Cortex-M内核堆栈指针机制
核心概念Cortex-M
02
堆栈大小估算
静态分析 · 递归函数影响 · 中断嵌套对堆栈的冲击
估算递归
03
FreeRTOS堆栈检测
uxTaskGetStackHighWaterMark() API详解 · 返回值解读
API水位线
04
堆栈溢出钩子
vApplicationStackOverflowHook() 配置与实战
钩子溢出保护
05
调试工具链
JTAG/SWD硬件断点 · IDE堆栈窗口 · FreeRTOS+Trace
调试Trace
06
堆栈优化策略
局部变量优化 · 函数内联 · 中断服务程序瘦身
优化内联
07
任务优先级与堆栈
优先级反转对堆栈的影响 · 优先级继承机制
优先级反转
08
多核/多处理器堆栈
AMP与SMP模式下的堆栈管理差异
多核AMP/SMP
09
堆栈与内存管理
heap_1到heap_5的选择 · 内存碎片对堆栈的影响
heap碎片
10
堆栈与MPU
MPU保护堆栈溢出 · 特权级与非特权级堆栈切换
MPU保护
11
堆栈与低功耗
Tickless模式下的堆栈行为 · 休眠唤醒堆栈恢复
低功耗Tickless
12
堆栈与任务通知
任务通知替代信号量对堆栈的节省
通知轻量
13
堆栈与消息队列
队列深度与堆栈的关系 · 队列溢出保护
队列溢出
14
堆栈与互斥量
互斥量死锁对堆栈的间接影响
互斥死锁
15
堆栈与软件定时器
定时器回调函数的堆栈使用
定时器回调
16
堆栈与事件组
事件组等待对堆栈的消耗
事件组等待
17
堆栈与流缓冲区
流缓冲区读写对堆栈的瞬时冲击
流缓冲瞬时
18
堆栈与任务调度
调度器挂起/恢复对堆栈的影响
调度挂起
19
堆栈与中断延迟
关中断时间过长导致的堆栈异常
中断延迟
20
堆栈与浮点单元
FPU寄存器保存对堆栈的额外开销
FPU寄存器
21
堆栈与MPU保护
MPU区域配置防止堆栈越界
MPU越界
22
堆栈与看门狗
看门狗复位与堆栈状态保存
看门狗复位
23
堆栈与任务删除
任务删除后的堆栈回收机制
删除回收
24
堆栈与任务挂起
挂起任务的堆栈状态保持
挂起保持
25
堆栈与任务恢复
恢复任务的堆栈完整性检查
恢复完整性
26
堆栈与任务创建
动态创建与静态创建的堆栈分配差异
创建静态/动态
27
堆栈与任务切换
任务切换时的堆栈上下文保存
切换上下文
28
堆栈与中断嵌套
中断嵌套深度对堆栈的极限挑战
嵌套深度
29
堆栈与系统节拍
SysTick中断对堆栈的周期性影响
SysTick周期
30
综合实战
一个完整的堆栈优化与调试案例
实战综合