堆内存不足(realloc和calloc)

4个职位/0个新职位
最后一篇文章
布莱恩
离线
最后一次见到:5年11个月前
专家 硕士
已加入:2014-10-16 18:10
堆内存不足(realloc和calloc)

在服务发现期间,为了启用通知/指示,我在保存最少数量的服务、特征和描述符时,内存不足。重新分配和calloc失败。我希望获得/配置更多内存。我在*\u config.h中查看这个

#如果定义了(CFG|u EXT|u SLEEP)| |!已定义(CFG\u DEEP\u SLEEP)
#define REINIT \u DESCRIPT \u BUF 0//0:保留在RetRAM中,1:需要重新初始化(使用延长睡眠时设置为0)
#定义使用内存映射外部睡眠设置

#其他
/*以下内容对BLE\u CONNECTION\u MAX\u USER==1有效。请使用excel工具的结果!*/
#define REINIT \u DESCRIPT \u BUF 0//0:保留在RetRAM中,1:需要重新初始化(使用延长睡眠时设置为0)
#定义使用内存映射深度睡眠设置
#定义DB\u HEAP\u SZ 1024
#定义ENV_HEAP_SZ 328
#定义MSG\u HEAP\u SZ 1312
#定义非\u RET \u HEAP \u SZ 1024
#结束

再看看我刚刚下载的excel电子表格(并不是说我了解如何使用它)。我有一个支持最大连接数(6)但不公开任何服务的中央服务器。在电子表格的所有情况下,我看到DB\u HEAP\u SZ设置为1024。为什么?对我来说,这浪费了1024字节的内存,这在我的情况下会有很大的帮助。

我不明白的是,当我重新分配或调用时,使用的是什么内存。试着读懂这些名字并从中理解一些道理,我假设它不是ENV_HEAP_SZ就是NON_retu HEAP_SZ。无论如何,

1如何找出我可以为这些不同的字段保留多少内存?
2我可以将DB\u HEAP\u SZ设置为零吗?
三。是否还有其他与数据库有关的(代码、方法、文件等)可以删除?
4如何将这些电子表格设置与em#u map_BLE_USER.h文件中的#define RWIP_HEAP_NON_RET_SIZE_USER 2048//(1024*BLE_CONNECTION_MAX_USER)等项协调?

另外,将上述内容更改为:
#如果定义了(CFG|u EXT|u SLEEP)| |!已定义(CFG\u DEEP\u SLEEP)
#define REINIT \u DESCRIPT \u BUF 0//0:保留在RetRAM中,1:需要重新初始化(使用延长睡眠时设置为0)
#定义使用内存映射外部睡眠设置

#其他
/*以下内容对BLE\u CONNECTION\u MAX\u USER==1有效。请使用excel工具的结果!*/
#define REINIT \u DESCRIPT \u BUF 0//0:保留在RetRAM中,1:需要重新初始化(使用延长睡眠时设置为0)
#定义使用内存映射深度睡眠设置
#定义DB\u HEAP\u SZ 0//1024
#定义ENV_HEAP_SZ 1980//328
#定义MSG\u HEAP\u SZ 4844//1312
#定义非\u RET \u HEAP \u SZ 2060//1024
#结束

没有区别;calloc在同一个地方失败了。

tru对话框
离线
最后一次见到:2周4天前
工作人员
已加入:2014-06-30 23:52
当你发现你是

当您检测到内存不足时,可能是由于以下两个原因之一:1)内存泄漏2)堆大小不足。如果已经排除了内存泄漏的可能性,那么现在应该关注堆的大小,正如前面所述。调试此问题的一种方法是检查映射文件。这将给你一个关于你有多大的头部空间的想法,并相应地调整你的软件。

布莱恩
离线
最后一次见到:5年11个月前
专家 硕士
已加入:2014-10-16 18:10
tru对话框,

tru对话框,

不幸的是你所说的我已经知道了。我要问的是各种堆消息分配的意义是什么。用户内存分配在哪里,我甚至可以控制它,等等。?如何使用电子表格中的信息?任何地方都没有关于这些材料的文件。在不了解各种堆分配的含义的情况下,我盲目地尝试根据单词来修改上面的一些内容(猜测它们可能是什么意思)。正如您从我的评论中看到的,我所做的任何更改都没有对calloc失败产生任何影响。发生在同一个地方。我不知道这些变化的其他后果,但到目前为止似乎没有影响。

请让我看一些文档,这些文档解释了各种堆分配的含义,如何(甚至是否)更改它们,以及需要做什么来控制用户的堆大小(我将使用realloc和/或calloc获取)。

tru对话框
离线
最后一次见到:2周4天前
工作人员
已加入:2014-06-30 23:52
可用文档

内存使用的可用文档和“内存映射Excel工具”如下:“UM-B-011:用户手册-DA14580内存映射和散点文件1.1”

http://support.dialog-semiconductor.com/system/files/restricted/UM-B-011.pdf