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

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
6个帖子/ 0新
最后一篇
英文
离线
最后一次露面:1年3个月前
加入: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),则会有一个新的错误:
#定义dg_configOPTIMAL_RETRAM (1)
#if(dg_configoptimal_retram == 1)
#define dg_configmem_retention_mode(0x02)
#定义dg_configSHUFFLING_MODE (0 x1)
#万一
#define 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:错误:ld返回1退出状态
制作:*** [pro.elf]错误1

为了降低功耗,我们实际需要什么设置来减少保留内存?对于RETRAM_0,是RAM在睡眠期间不被使用,还是RAM在睡眠期间被保留?dg_configMEM_RETENTION_MODE和dg_configQSPI_CACHED_RAM_SIZE_BB有什么区别?我在SDK中没有找到非常清晰的描述。

谢谢,

英文

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

嗨yingfen,

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

谢谢,PM_DIALOG.

PM_DIALOG.
离线
最后一次露面:4小时41分钟前
职员
加入: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年3个月前
加入: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.
离线
最后一次露面:4小时41分钟前
职员
加入:2018-02-08 11:03
嗨yingfen,

嗨yingfen,

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

谢谢,PM_DIALOG.

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

你好,

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

似乎我的内存布局有问题,编译器告诉我用完内存,当需要超过32 KByte 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 KByte 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

最好的祝福
节食者