在录音实验中,定义一个全局数组 ,怎么超过2k就报错说没有空间了

2019-07-20 17:25发布

在整点原子探索者开发板录音实验中,我定义一个全局数组 ,用来存采集到音频数据,怎么超过2k就报错说没有空间了,全局数组也必须用内存管理吗,我没看内存管理部分,就是直接用的,是不是不行呀
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
ldskendy
1楼-- · 2019-07-20 17:40
内存不够用,手工管理的内存设置太大了。
如果是用了原子哥的程序,请修改下堆的大小。MEM1_MAX_SIZE参数改小点。
类似于:

//mem1内存参数设定,mem1完全处于内部SRAM里面
#define MEM1_BLOCK_SIZE        32                          //内存块大小为32字节
#define MEM1_MAX_SIZE                100*1024         //最大管理内存 80k
#define MEM1_ALLOC_TABLE_SIZE MEM1_MAX_SIZE/MEM1_BLOCK_SIZE  //内存表大小
xuande
2楼-- · 2019-07-20 20:08

1、空间不够完全有可能,看你都有哪些内容要占用存储空间。
2、内存管理不是必须,关键看空间都用来干什么了;如果各有用途,内存管理也不能解决问题。

xumax
3楼-- · 2019-07-21 00:18
xuande 发表于 2017-1-11 14:46
1、空间不够完全有可能,看你都有哪些内容要占用存储空间。
2、内存管理不是必须,关键看空间都用来干什 ...

感谢关注,ram空间肯定够,开发板原代码,DMA缓存大小才4096,我如果不用数组,直接用全局变量指针,缓存改到64000,双缓冲也就不到128k,都可以运行,但是把缓存的数写入一个数组2k以上都报错,我还以为必须分配内存呢
dengxiaojun12
4楼-- · 2019-07-21 03:08
xumax 发表于 2017-1-11 14:55
感谢关注,ram空间肯定够,开发板原代码,DMA缓存大小才4096,我如果不用数组,直接用全局变量指针,缓存 ...

我是采集噪声,几秒就够,不用SD卡,如果用指针形式保存没问题,我就是奇怪用个全局数组为什么报错,怎么看RAM都够呀
xumax
5楼-- · 2019-07-21 05:03
 精彩回答 2  元偷偷看……
xumax
6楼-- · 2019-07-21 06:43
 精彩回答 2  元偷偷看……

一周热门 更多>