原子大哥:STM32F407ZGT6 堆该如何理解啊,恳请大神指教

2019-07-21 01:13发布

问题1>单片机的堆和栈的地址是跟RAM共地址的吗?是在0x20000000~0x2002000之间吗?
问题2>堆的起始地址是多少啊?栈的起始地址呢?
问题3>栈的大小根据如下起始文件中定义的吗?怎么就这么小

问题4>为什么我进入debug界面,发现堆的起始地址是0x20000758(MSP的地址)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
taizonglai
2019-07-21 05:41
1、堆和栈就是RAM,所以肯定在0x20000000~0x2002000之间
2、堆和栈的起始地址见生成的map文件,下图中详细的列出了堆和栈的地址和大小,


3、堆和栈的大小就是就是启动文件里面定义的,Stack_Size和Heap_Size分别为栈和堆的大小,嫌小?那你改大啊!不是所以的程序都需要那么大的堆栈,正如一个人就只能吃两碗饭,你给他一吨饭也没事,关键是有意义吗?他能吃得下吗?
4、至于起始位置,看2里面的图,并不是说堆栈的内存就必须得从0X20000000开始。

一周热门 更多>