[信息] STM32 堆栈大小设定

[复制链接]
166|51
minzisc 发表于 2026-2-12 17:08 | 显示全部楼层
总栈空间的20-30%作为安全余量
mnynt121 发表于 2026-2-12 18:52 | 显示全部楼层
通过 .map 和运行时监测确定最小安全值,再回调优化。
rosemoore 发表于 2026-2-12 20:01 | 显示全部楼层
STM32 的堆栈大小主要在启动文件和链接脚本中设定,其中启动文件是核心配置入口
ingramward 发表于 2026-2-12 21:07 | 显示全部楼层
在RAM末尾划出一块区域作为“堆栈保护区”,设置为不可访问权限。若堆栈溢出访问该区域,触发硬件异常。
modesty3jonah 发表于 2026-2-12 21:47 | 显示全部楼层
在哪里设定?              
ulystronglll 发表于 2026-2-12 22:05 | 显示全部楼层
堆栈大小需覆盖程序最坏情况下的内存需求
eefas 发表于 2026-2-12 23:00 | 显示全部楼层
在STM32开发中,堆栈大小的合理设定直接影响系统的稳定性和性能。
juliestephen 发表于 2026-2-13 10:42 | 显示全部楼层
STM32 的栈如果爆了,通常没有直接报错,而是踩到了下面的全局变量或堆,导致变量诡异变化。
loutin 发表于 2026-2-13 11:19 | 显示全部楼层
在启动文件中填充特定模式,运行时定期检查堆栈底部是否被覆盖。
geraldbetty 发表于 2026-2-13 12:08 | 显示全部楼层
堆栈大小并非越大越好,也不能过小
jackcat 发表于 2026-2-13 13:06 | 显示全部楼层
小数组放全局,大数组用静态,栈里只存地址,没事别用堆。
averyleigh 发表于 2026-2-13 15:44 | 显示全部楼层
每层递归均需保存返回地址和局部变量,深度过大易溢出
qiufengsd 发表于 2026-2-13 17:52 | 显示全部楼层
总栈大小 = 主栈 + 中断嵌套栈 + 安全余量
hilahope 发表于 2026-2-13 18:49 | 显示全部楼层
如何确定合理的堆栈大小?              
everyrobin 发表于 2026-2-13 21:30 | 显示全部楼层
栈用途函数调用、局部变量、中断上下文保存
vivilyly 发表于 2026-2-13 21:54 | 显示全部楼层
建议采用“理论估算→动态监控→迭代优化”流程,尤其在边缘AI、工业控制等高可靠场景中,应优先保障栈空间冗余。
uiint 发表于 2026-2-14 09:58 | 显示全部楼层
使用动态内存分配时需谨慎,防止内存碎片。
uptown 发表于 2026-2-14 10:43 | 显示全部楼层
限制递归深度或改用迭代              
mollylawrence 发表于 2026-2-14 11:05 | 显示全部楼层
防止栈溢出破坏其他内存              
kmzuaz 发表于 2026-2-14 12:27 | 显示全部楼层
将大数组或结构体定义为全局变量,避免在函数内部分配。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
0