stm32堆空间和栈空间大小计算?Stack_Size 和 Heap_Size

2019-07-21 03:53发布

QQ截图20160829181915.jpg

裸机程序里面这两个值  在程序中我要怎么计算才能知道分配多少合适?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
正点原子
1楼-- · 2019-07-21 06:04
1,Stack Size,一般小工程0X400足够,我们综合实验才设置0X1000就够用,所以默认无需设置太大。2,Heap Size,如果没有用到标准库的malloc,就是废物,纯属浪费内存,所以直接设置为0即可。
shuaigew88
2楼-- · 2019-07-21 06:10
Stack_Size的值根据你程序中局部变量最大尺寸计算,Heap_Size的值如果程序中没有用到动态内存malloc就默认不用管。
xkwy
3楼-- · 2019-07-21 06:21
我习惯栈大小原则上四分之一RAM,堆没用过(对动态分配内存不太感冒)。栈不能弄小了,否则可能在运行中的某一时刻发生莫名其妙的问题
xkwy
4楼-- · 2019-07-21 11:37
shuaigew88 发表于 2016-8-29 20:01
Stack_Size的值根据你程序中局部变量最大尺寸计算,Heap_Size的值如果程序中没有用到动态内存malloc就默认 ...

函数嵌套也要消耗栈
shuaigew88
5楼-- · 2019-07-21 12:41
 精彩回答 2  元偷偷看……
xkwy
6楼-- · 2019-07-21 15:21
shuaigew88 发表于 2016-8-29 20:12
一般如果没有局部大数组堆和栈的值都不用修改,如果局部经常定义大数组可以根据最大数组尺寸计算,如UINT ...

这么小的RAM就另当别论了,我用的单片机一般来说都16k起步了,闲着也是闲着,不如拿来做堆栈,反正又没什么坏处是不是?

一周热门 更多>