OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3431|回复: 3

内存分配总是失败

[复制链接]

4

主题

7

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2015-11-18
在线时间
1 小时
发表于 2015-11-19 17:02:40 | 显示全部楼层 |阅读模式
5金钱
void mp3_task(void *p_arg)
{
FIL* fmp3;
  u16 br;
u8 res,rval;  
u8 *databuf;     
u16 i=0;
OS_ERR err;
while(1)
{
rval=0;    
fmp3=(FIL*)mymalloc(SRAMIN,sizeof(FIL));//申请内存
databuf=(u8*)mymalloc(SRAMIN,4096); //开辟4096字节的内存区域
if(databuf==NULL||fmp3==NULL)LED1=0; //内存申请失败.
if(rval==0)
{  

VS_Restart_Play();   //重启播放 
VS_Set_All();         //设置音量等信息  
VS_Reset_DecodeTime(); //复位解码时间        
res=f_open(fmp3,(const TCHAR*)"0:/MUSIC/1.mp3/",FA_READ);//打开文件  
if(res==0)//打开成功.

LED0=0;
VS_SPI_SpeedHigh(); //高速   
while(rval==0)
{
res=f_read(fmp3,databuf,4096,(UINT*)&br);//读出4096个字节  
i=0;
do
{  
if(VS_Send_MusicData(databuf+i)==0)//给VS10XX发送音频数据
{
i+=32;
}        
}while(i<4096);//循环发送4096个字节 
if(br!=4096||res!=0)
{
rval=0;
break;//读完了.  
}  
}
f_close(fmp3);
}    
}      
myfree(SRAMIN,databuf);        
myfree(SRAMIN,fmp3);  
//STimeDlyHMSM(0,0,0,500,OS_OPT_TIME_PERIODIC,&err);//延时500ms
}
}

用原子哥的精英板子做MP3播放实验,把mp3的播放代码集成在ucos下,mp3的task栈空间大小分配了512,不清楚为什么在fmp3=(FIL*)mymalloc(SRAMIN,sizeof(FIL));//申请内存
databuf=(u8*)mymalloc(SRAMIN,4096); //开辟4096字节的内存区域之后,总是报出内存分配失败(LED1会点亮),请各位指导

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-11-19 22:57:40 | 显示全部楼层
说明内存用光了.
你看看其他哪里申请了大内存的.改下代码.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

4

主题

7

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2015-11-18
在线时间
1 小时
 楼主| 发表于 2015-11-20 16:38:18 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,我的板子跑了stemwin,是不是这个吃掉了很多内存呢?板子上没有外挂ram,分析了一下源码,好像分配内存最大的地方也就是4096,用掉的这点内存不会导致我的板子没有内存分配给FIL吧?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-11-20 22:25:53 | 显示全部楼层
回复【3楼】hanjun761:
---------------------------------
看你代码.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-16 17:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表