你好,
芯片是14683。我们希望在长时间睡眠期间减少保留的记忆,以减少电力消耗。我找到一个演示dk_apps\features\extended_sleep,其中的配置文件custom_config_qspi.h如下:
#define dg_configQSPI_CACHED_RAM_SIZE_BB (64 * 1024)
#define dg_configQSPI_CACHED_RETRAM_0_SIZE_BB (24 * 1024)
总RAM+RETRAM_0<128k并成功编译。但是如果我们在代码中使用相同的配置,它将显示一个溢出错误,直到我们设置RETRAM_0=128k-RAM。
如果我们禁用dg_configOPTIMAL_RETRAM(1),它可以成功编译。但是如果我们在代码中启用dg_configOPTIMAL_RETRAM(1),就会出现一个新的错误:
#定义dg_configOPTIMAL_RETRAM (1)
#if (dg_configOPTIMAL_RETRAM == 1) / /设置路径
#定义dg_configMEM_RETENTION_MODE (0 x02)
#定义dg_configSHUFFLING_MODE (0 x1)
# endif
#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-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld.exe:不能打开链接器脚本文件ld:无效的论点
Collect2.exe:错误:ld返回1退出状态
: * * * (Pro。精灵]错误1
为了降低功耗,我们实际需要什么设置来减少保留内存?对于RETRAM_0,是RAM在睡眠期间不被使用,还是RAM在睡眠期间被保留?dg_configMEM_RETENTION_MODE和dg_configQSPI_CACHED_RAM_SIZE_BB有什么区别?我在SDK中没有找到非常清晰的描述。
谢谢,
Yingfen
嗨yingfen,
非常感谢你的在线问题和你的输入。让我查一下,马上告诉你。
谢谢,PM_Dialog
嗨yingfen,
很抱歉耽搁了。请看一下UM-B-044: DA1468x软件平台参考文件从我们的支持网站。在图83(第162页)中,您可以找到Retention RAM优化。如果定义了dg_configOPTIMAL_RETRAM宏,那么RAM1、RAM2和RAM3将保持在睡眠状态。要做到这一点,如果你想减少保留内存,你可以“关闭”RAM3块,但你必须检查你的变量等是否适合RAM1和RAM2块。如果没有,则应保留RAM3。
谢谢,PM_Dialog
嗨PM_Dialog,
谢谢你提供的参考它帮助我理解了结构,但我仍然对参考文献有一些问题。
1.在P157中,在表52的正下方,它给出了一个示例,其中需要保留50K RAM。它只使用RAM5和ram2。为什么dg_configMEM_RETENTION_MODE是0x1D(0b1 1101)而不是0x12(0b1 0010)(只有RAM2和5)?
2.在您所提供的图83示例中,它将在睡眠期间保留RAM1-3,但不保留BLE ROM所需的RAM5(图77上面的P156)。由于这是BLE优化项目,这是否意味着BLE ROM现在存储在RetRAM0而不是RAM5?截图中的内容(都来自P156-P162之间的相同参考)似乎彼此冲突。
https://user-images.githubusercontent.com/32470088/67316033-5c912580-f4c..。
谢谢,
Yingfen
嗨yingfen,
根据该文档,BLE ROM变量将从RetRAM2中的0x07FC0200地址开始。在DA14680/1设备中,BLE ROM变量被存储到RAM5中。在DA14683中,RAM5可以在休眠状态下关机。如果您正在使用DA14683,那么使用图83所示的RAM优化是没有问题的。
谢谢,PM_Dialog
你好,
我在eval-board上使用DA14683设备和实际的SDK和工具。
似乎我的内存布局有问题,编译器告诉我用完内存,当需要超过32 KByte RAM。以下将显示:
App.elf section ' RETENTION_RAM0'不适用于region ' RetRAM0'
RetRAM0'溢出32个字节
下面是我的实际配置(来自custom_config_qspi.h)
我从一个示例中使用了这个,我希望至少有64 KByte RAM。
即使玩弄数字,我也解不出这个问题。
我要怎样配置才能得到最大值。在QSPI缓存模式下运行的BLE应用程序中的RAM大小?我想保留整个内存。
顺便问一下,在项目设置中使用以下配置是否正确:
致以最亲切的问候
迪特尔