跳转到主要内容

内存分配

2个月前

内存分配

发布的melj30分 8回答说
0的问题

我最近下载了DA14531(6.0.4.1114)的最新SDK,并试图构建我的项目,但现在项目不能链接,因为没有足够的RAM空闲。该项目使用SDK 6.0.12.1020.2构建得很好。我能做什么来优化内存使用?我在Linux上使用gcc-arm-none-eabi-7-2018-q2-update和优化-Os构建

在SDK 6.0.4.1114的发布说明中,它说“1114/02定义了额外的空闲RAM区域被应用程序使用”-如何这个额外的RAM应该是可用的模式,或它自动可用?雷竞技安卓下载另外你能确认一下SDK 6.0.4.1114是否比6.0.12.1020.2使用了更多的RAM ?我看到至少有额外的2.5kB。

同样,#define CFG_RET_DATA_SIZE和#define CFG_RET_DATA_UNINIT_SIZE应该设置为什么?设置不正确会有什么影响吗?CPU堆栈大小集在哪里?与我使用过的其他平台相比,我发现围绕这些领域的整个文档令人失望,缺乏或不透明。

另一个相关的问题:当我可以构建我的代码时,我发现gcc报告的总大小限制接近40kB。

"文本数据BSS dec十六进制
27180 156 11844 39180 990c"

在上面的例子中,如果我增加一个正常的RAM缓冲区大小只有256字节,那么项目不能链接,由于以下错误:

"/../../../arm-none-eabi/bin/ld: region RAM溢出with stack"

这意味着中断向量,堆栈和堆大小加起来大约8kB(因为我相信DA14531有48kB的总RAM) -这是正确的,这似乎是一个异常大的量分配给这些?请建议。

2个月前

PM_Dialog

嗨Melj,

谢谢你在网上提出的问题。能否请您指出您要构建的SDK项目,以便我尝试复制?您正在使用Keil IDE吗?

谢谢,PM_Dialog

2个月前

melj 30分

我在构建自己的项目,而不是SDK项目。我使用的是Ubuntu下的Smart Snippets Studio (Eclipse IDE),而不是Keil。

谢谢

2个月前

PM_Dialog

嗨melj,

让我查一下,然后再回复你。

谢谢,PM_Dialog

2个月前

melj 30分

谢谢,等待您的回复。

2个月前

melj 30分

请问您在回答我的问题上有什么进展吗?

谢谢。

2个月前

PM_Dialog

嗨melj,

抱歉延误,我们正在审核细节。SDK6.0.14确实比以前的版本消耗了一些内存。我们将很快向您反馈细节和建议。

谢谢,PM_Dialog

2个月前

KB_Dialog

嗨melj,

我们仍在研究SDK版本之间增加的代码大小,以及我们可以提供什么指导来减少它。我们会尽快回复您。

最好的问候,

KB_Dialog

2个月前

melj 30分

谢谢你的调查。我期待您对我最初提出的问题给予答复。

问候