中国领先的工业平台

返回贤集网 返回微头条
贤集网技术微头条APP获取

如何修改嵌入式程序的Heap和Stack的大小 ...

 酱香饼

下载贤集网APP入驻自媒体

如何修改嵌入式程序的Heap和Stack的大小
在一些项目中,如RTOS或GUI项目中默认的Heap和Stack的大小可能不能运行,如我的一个lvgl项目,由于这两者的size使用默认值,导致程序经常死机。所以在项目生成后需要修改Heap和Stack的尺寸,那么针对keil项目和GNU项目如何修改呢,下面就分别说明:
keil项目的Heap和Stack的尺寸在startup_stm32fxxxx.s文件中,
修改Stack_Size和Heap_Size的值,就可以修改需要的值了。
GNU项目的Stack Size和Heap Size的值,不在startup_stm32f746xx.s里,而是在LinkerScript.ld连接脚本里。
修改上面的_Min_Heap_Size和_Min_Stack_Size就可以修改默认的值了。
对于不同的项目,Heap和Stack到底需要多大,根据项目需求而异,如果函数中的参数较多或全套较深则Stack较大,动态参数较多较大则Heap较大。虽然这两个值越大越好,但是也要根据项目的实际内存而定。

最新回复
发布回复
在startup_stm32fxxxx.s文件中,修改Stack_Size和Heap_Size的值,即可修改Heap和Stack的大小。

为您推荐

热门交流