关于在延长睡眠期间减少保留内存的问题?

了解更多常见问题解答教程

6个帖子/ 0新
最后一篇
英文
离线
最后一次露面:1 year 2 months ago
加入:2019-08-07 00:10
关于在延长睡眠期间减少保留内存的问题?

嗨,

芯片为14683.我们希望在延长睡眠期间减少保留的内存以降低功耗。我找到了一个demo dk_apps \特征\ extended_sleep,其中config文件custom_config_qspi.h是:
#define dg_configqspi_cached_ram_size_bb(64 * 1024)
#define dg_configqspi_cached_retram_0_size_bb(24 * 1024)

总RAM + REDLAM_0 <128K并成功编译。但如果我们在我们的代码中使用相同的配置,则会显示溢出错误,直到我们设置回红径= 128k-RAM。

如果我们禁用dg_configoptimal_retram(1),它可以成功编译。但如果我们在代码中启用DG_CONFIGOPTIMAL_RETRAM(1),则会有一个新的错误:
#define dg_configoptimal_retram(1)
#if(dg_configoptimal_retram == 1)
#define dg_configmem_retention_mode(0x02)
#define dg_configshuffling_mode(0x1)
#万一
#定义dg_configQSPI_CACHED_RAM_SIZE_BB( 20 * 1024)
#define dg_configqspi_cached_retram_0_size_bb(128 * 1024 - dg_configqspi_cached_ram_size_bb)

D:/ DiaSemi / SmartsnippetsStudio / GCC / 4_9-2015Q3 / BIN /../ LIB / GCC / ARM-NOR-EABI / 4.9.3 /../../../../ ARM-None-EABI /bin / ld.exe:无法打开链接器脚本文件d:\ pro / da14683-00-refoy_qspi / mem.ld:无效的参数
collect2.exe: error: ld returned 1 exit status
制作:*** [pro.elf]错误1

What's the actual setting we need to reduce the retained memory so as to reduce power? For RETRAM_0, is it the RAM will not be used during sleep, or the RAM will be kept during sleep? What's difference between dg_configMEM_RETENTION_MODE and dg_configQSPI_CACHED_RAM_SIZE_BB? I didn't find very clear descriptions in the SDK.

谢谢,

英文

设备:
PM_DIALOG.
离线
最后一次露面:6小时31分钟前
职员
加入:2018-02-08 11:03
嗨yingfen,

嗨yingfen,

非常感谢您在线的问题和输入。让我检查一下,我会尽快让你知道。

谢谢,PM_DIALOG.

PM_DIALOG.
离线
最后一次露面:6小时31分钟前
职员
加入:2018-02-08 11:03
嗨yingfen,

嗨yingfen,

为延迟道歉。请看一下UM-B-044:DA1468X软件平台参考从支持网站的文档。在图83(第162页)中,您可以找到保留RAM优化。如果定义了DG_CONFIGOPTIMAL_RETRAM宏,则RAM1,RAM2和RAM3保留在睡眠状态。为此,如果您想减少保留的内存,则可以“关闭”RAM3块,但您必须检查您的变量等可以适合RAM1和RAM2块。如果不是,应保留RAM3。

谢谢,PM_DIALOG.

英文
离线
最后一次露面:1 year 2 months ago
加入:2019-08-07 00:10
嗨pm_dialog,

嗨pm_dialog,

谢谢你提供参考。它帮助我了解结构,但我仍然对参考有一些问题。

1.在P157中,右下表52,它给出了一个例子,其中需要保留50k RAM。它仅使用RAM5和2.为什么DG_CONFIGMEM_RETENTION_MODE是0x1d(0b1 1101)而不是0x12(0b1 0010)(仅ram2和5)?

2.在图83中,您提供的示例,它将在睡眠期间保留RAM1-3,但不保留用于BLE ROM所需的RAM5(图77上方P156)。因为它是一个优化的项目,它是否意味着BLE ROM现在存储在湍流中而不是RAM5?屏幕截图中的内容(来自P156-P162之间的相同参考)似乎彼此冲突。

https://user-images.githubusercontent.com/32470088/67316033-5C912580-F4C ...

谢谢,

英文

PM_DIALOG.
离线
最后一次露面:6小时31分钟前
职员
加入:2018-02-08 11:03
嗨yingfen,

嗨yingfen,

根据该文档,BLE ROM变量将在0x07FC0200地址中启动,该地址是在REDRAM2中。BLE ROM变量存储在DA14680 / 1设备中的RAM5中。在DA14683中,Ram5可以在睡眠中断电。如果您使用DA14683,则使用RAM优化没有任何问题。

谢谢,PM_DIALOG.

节食者粉笔
离线
最后一次露面:1个月4周前
加入:2019-10-12 10:33
你好,

你好,

我正在使用实际的SDK和工具在eval-Board上使用DA14683设备。

似乎我对内存布局有问题,编译器告诉我在需要更多的32千字的RAM时耗尽内存。以下将显示:
app.elf部分`保留_ram0'不适合区域`retram0'
retram0'溢出32字节

以下是我的实际配置(来自custom_config_qspi.h)

的#define dg_configOPTIMAL_RETRAM(0)的#define dg_configMEM_RETENTION_MODE(0x1F的)的#define dg_configQSPI_CACHED_RAM_SIZE_AE(61 * 1024)的#define dg_configQSPI_CACHED_RETRAM_0_SIZE_AE(67 * 1024)的#define dg_configQSPI_CACHED_RAM_SIZE_BB(62 * 1024)的#define dg_configQSPI_CACHED_RETRAM_0_SIZE_BB(66 * 1024)

我从一个示例中使用了这个,我希望至少有约64千字的RAM。

即使在玩数字时,我也无法解决问题。

我必须配置什么来获得最大值。在QSPI缓存模式下运行的BLE应用程序中的RAM大小?我想要保留完整的RAM。

顺便说一下,在项目设置中使用以下配置是正确的:

dg_configBLACK_ORCA_IC_REV=BLACK_ORCA_IC_REV_B dg_configBLACK_ORCA_IC_STEP=BLACK_ORCA_IC_STEP_B

最好的祝福
节食者