malloc申请内存返回NULL

2019-07-20 13:34发布

我想实现一个程序,串口接收一张图片,然后利用STemWin显示,程序上来GUI初始化,然后申请内存,总是不成功,请教一下是怎么回事?
(用的是STM32F429,片上就有256K,还有外扩SDRAM,又没有作别的,应该够用吧)调试时直接进入GUI_Delay(100).

while(1){
   
    uint8_t * databuf;
    databuf = (uint8_t *)malloc(63354*sizeof(uint8_t));
    if(databuf == NULL){
      GUI_Delay(100);
   }
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
taizonglai
1楼-- · 2019-07-20 18:45
 精彩回答 2  元偷偷看……
taizonglai
2楼-- · 2019-07-20 20:44
malloc是从堆上分配内存的!查看你的.s启动文件中堆设置的多大的。肯定没有63354字节,默认最多就0x400=1024字节!
梅须逊雪
3楼-- · 2019-07-20 22:32
zuozhongkai 发表于 2017-7-5 15:47
malloc是从堆上分配内存的!查看你的.s启动文件中堆设置的多大的。肯定没有63354字节,默认最多就0x400=102 ...

嗯嗯,我也注意到了这个问题,我把它改大了之后就出现了
no space in excution regions with .ANSY selector matching .....
这样的好多错误,我查了查(理解为RAM不够用),我再想外部的SDRAM是不是没有用上,工程设置一项中 on-chip IRAM设置为192K,是片上的大小,我以为是不是应该在off-chip选项上把外部SDRAM添加上,可是我看了看fmc例程,工程设置里好像没有单独添加这一块,而是程序里设置完就直接用的,关于这块还不是很明白,还希望您给解答一下。
djyos
4楼-- · 2019-07-21 03:16
 精彩回答 2  元偷偷看……
ofourme
5楼-- · 2019-07-21 07:36
肯定需要配置启动文件和工程的。ram是属于excution regions的吗?好像不太对。
梅须逊雪
6楼-- · 2019-07-21 09:50
 精彩回答 2  元偷偷看……

一周热门 更多>