[信息] 聊一聊 - STM32的堆和栈空间怎么分配

[复制链接]
125|39
pl202 发表于 2026-2-10 14:50 | 显示全部楼层
栈用途存储函数调用时的返回地址、局部变量、寄存器上下文
yeates333 发表于 2026-2-11 19:09 | 显示全部楼层
栈优先保证        宁可堆小,不可栈溢出
benjaminka 发表于 2026-2-11 20:49 | 显示全部楼层
堆大小 ≠ 实际可用内存!还需减去全局变量、静态变量占用。
primojones 发表于 2026-2-11 21:32 | 显示全部楼层
栈溢出症状程序随机崩溃              
albertaabbot 发表于 2026-2-12 13:43 | 显示全部楼层
在 STM32 开发中,通常是在启动文件里定义的。
benjaminka 发表于 2026-2-12 15:48 | 显示全部楼层
堆和栈的总和不能超过芯片可用RAM
uptown 发表于 2026-2-12 16:38 | 显示全部楼层
增大栈大小,或优化函数调用链和局部变量。
earlmax 发表于 2026-2-12 22:44 | 显示全部楼层
栈的大小主要由函数调用深度和局部变量大小决定。
lzbf 发表于 2026-2-13 14:50 | 显示全部楼层
改用迭代算法减少栈深度,尤其禁止在中断服务例程中使用递归
lihuami 发表于 2026-2-13 16:27 | 显示全部楼层
如果栈向下增长太多,或者堆向上增长太多,两者会撞车。一旦撞车,程序数据被破坏,立即跑飞。
houjiakai 发表于 2026-2-13 18:14 | 显示全部楼层
栈:存放函数的局部变量、返回地址、中断压栈。它是自动分配释放的。
堆:由程序员手动管理 。如果不释放,会导致内存泄漏。
youtome 发表于 2026-2-13 20:33 | 显示全部楼层
堆溢出通常表现为间接性故障,调试难度更高
olivem55arlowe 发表于 2026-2-14 12:17 | 显示全部楼层
在STM32开发中,合理分配堆和栈空间是保障系统稳定性的关键。
backlugin 发表于 2026-2-14 13:55 | 显示全部楼层
尽量使用静态数组而非动态分配              
fengm 发表于 2026-2-14 16:33 | 显示全部楼层
栈大小建议?              
hilahope 发表于 2026-2-15 10:13 | 显示全部楼层
增大堆大小,或改用静态分配/内存池。
modesty3jonah 发表于 2026-2-15 10:53 | 显示全部楼层
栈的溢出会导致程序立即崩溃,因此需优先保证栈容量充足
Pretext 发表于 2026-2-24 17:04 | 显示全部楼层
控制分配大小,既防栈溢出,又避免内存浪费。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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