首页
›
工业控制与工业互联网
›
011-TinyML MCU内存占用优化
›
《MCU端侧推理stack峰值测量与裁剪教程》
VIP20
本课程属于:011-TinyML MCU内存占用优化
工业控制与工业互联网 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
📘
MCU端侧推理stack峰值测量与裁剪教程
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
课程导入
学习目标 · 适用人群 · 课程整体框架与学习路径
课程导入
学习目标
02
MCU端侧推理基础
MCU资源限制 · 典型推理框架(TFLite Micr… · CMSIS-NN等)与栈使用特点
MCU
端侧推理基础
03
栈与堆的概念
栈区 · 堆区 · 静态区在MCU内存中的布局
堆的概念
栈区
04
推理过程中的栈消耗来源
函数调用深度 · 局部变量 · 递归
推理过程
栈消耗来源
05
栈峰值测量原理
栈水位标记法 · 栈填充模式 · 周期性采样与任务切换时的测量方法
栈峰值测量原理
栈水位标记法
06
常用栈测量工具与调试器
Keil · IAR · GDB
常用栈测量工具
调试器
07
基于链接脚本的栈空间分析
通过.map文件 · 符号表估算栈使用 · 静态分析工具(如StackUsage…
基于链接脚本的栈…
map
08
运行时栈峰值测量实战
在推理任务前后插入栈水位检测代码 · 记录最大栈深度
运行时栈峰值测量…
推理任务前后插入…
09
多任务环境下的栈峰值测量
RTOS(FreeRTOS · RT-Thread)中每个任务栈的独…
多任务环境下的栈…
RTOS
10
推理框架栈消耗剖析
以TFLite Micro为例 · 分析算子调用链 · 解释器循环
推理框架栈消耗剖…
TFLite
11
算子级栈测量
针对卷积 · 全连接 · 激活函数等典型算子
算子级栈测量
针对卷积
12
栈峰值数据采集与可视化
使用串口 · 日志或调试器导出数据 · 用Python或Excel绘制栈使用…
栈峰值数据采集
可视化
13
栈裁剪目标设定
根据测量结果确定安全余量 · 设定裁剪目标(如减少30%栈峰值)
栈裁剪目标设定
根据测量结果确定…
14
代码级栈优化
减少局部变量大小 · 避免深层嵌套 · 使用静态缓冲区替代大局部数组
代码级栈优化
减少局部变量大小
15
函数调用深度优化
扁平化调用结构 · 内联关键函数 · 减少递归使用
函数调用深度优化
扁平化调用结构
16
编译器优化选项对栈的影响
-Os · -O2 · -funroll-loops等选项的…
编译器优化选项对…
Os
17
链接脚本与栈空间调整
修改栈起始地址 · 大小 · 利用MPU保护栈溢出
链接脚本
栈空间调整
18
推理框架配置裁剪
关闭不需要的算子 · 减少解释器临时缓冲区 · 调整arena大小
推理框架配置裁剪
关闭不需要的算子
19
算子融合与内存复用
将多个算子融合减少中间张量 · 复用临时缓冲区降低栈需求
算子融合
内存复用
20
中断与异常处理对栈的影响
中断嵌套深度 · 中断服务函数栈使用优化
异常处理对栈的影…
断嵌套深度
21
案例实战
基于STM32的TFLite Mic…
案例实战
STM32
22
案例实战
基于ESP32的语音唤醒词识别模型栈… · 从测量到裁剪的完整记录
案例实战
ESP32
23
常见问题与调试技巧
栈溢出导致HardFault · 随机崩溃 · 数据被踩的定位方法
常见问题
调试技巧
24
栈裁剪与性能的权衡
优化栈时如何避免性能下降 · 保持推理速度
栈裁剪
性能的权衡
25
自动化栈测量框架
编写脚本自动编译 · 烧录 · 采集栈峰值并生成报告
自动化栈测量框架
编写脚本自动编译
26
进阶
使用静态分析工具(如Polyspac… · Clang Static Analy…
进阶
Polyspac
27
进阶
硬件辅助栈监测 · MPU异常捕获 · 硬件跟踪单元(ETM/ITM)
进阶
硬件辅助栈监测
28
综合项目
从零开始为一个实际MCU推理应用设计… · 并验证稳定性
综合项目
MCU
29
课程总结
核心知识点回顾 · 常见误区 · 最佳实践清单
课程总结
核心知识点回顾
30
拓展与展望
新兴MCU架构 · AI加速器 · 异构计算对栈管理的影响与未来趋势
拓展
MCU
所属VIP或分类
同VIP:Edge-AI-MCU端侧推理内存占用排查课程
同VIP:Edge-AI-TinyML内存优化实战案例集
同VIP:MCU-linker-map分析TinyML内存热点指南