在一个项目中,使用了STM32,数据结构比较复杂,采用动态内存分配,一开始程序运行老是异常,调试查找原因,发现是使用malloc分配内存空间时不成功造成的,经分析原因在于Startup_stm32fxx.s文件中定义的堆空间太小导致的,如下图:
因为malloc是在堆空间中分配内存,设置的大小小于需要分配的空间是肯定是要失败的,我把堆大小改为10K就OK了。
在一个项目中,使用了STM32,数据结构比较复杂,采用动态内存分配,一开始程序运行老是异常,调试查找原因,发现是使用malloc分配内存空间时不成功造成的,经分析原因在于Startup_stm32fxx.s文件中定义的堆空间太小导致的,如下图:
因为malloc是在堆空间中分配内存,设置的大小小于需要分配的空间是肯定是要失败的,我把堆大小改为10K就OK了。