你好,
我们已经构建了一个产品,使用DA14580连接到一个音频DSP使用I2C。DA14580工作在BOOST模式下。它以外围角色运行修改后的SPS服务。
在正常操作中,我们使用延长睡眠,一切工作都很完美。当电池电压下降到阈值以下时,我需要将DA14580放入Deep Sleep,让音频DSP尽可能长时间地运行。在Deep Sleep(设置为30s)中,设备会定期重启,首先检查电池电压,然后返回Deep Sleep或重新开始正常操作。
这也能令人满意,但前提是我不顾在arch_main->ble_validate_sleep_mode()中检查ke_mem_is_empty(KE_MEM_NON_RETENTION)。
if((sleep_mode == mode_deep_sleep)) // && ke_mem_is_empty(KE_MEM_NON_RETENTION)) {func_check_mem_flag = 1;//true;} else sleep_mode = mode_ext_sleep;
我想知道我能做些什么来解决这个问题,如果有必要的话。
我的应用程序代码没有数据存储在保留RAM中。此外,事实证明,应用程序将不能正常运行与MemoryMap工具建议的内存设置。我必须增加一些值如下所示:
#define reit_descript_buf 0 //0: keep in RetRAM, 1: re-init is required(当使用Extended Sleep时设置为0)#define USE_MEMORY_MAP DEEP_SLEEP_SETUP #define DB_HEAP_SZ 1524 // 1024 #define ENV_HEAP_SZ 328 #define MSG_HEAP_SZ 1940 // 1312 #define NON_RET_HEAP_SZ 1024
提前谢谢,
Sandeep
---------
设备:
嗨Sandeep,
非常感谢你的问题。我们将直接支持你的问题。
谢谢,PM_Dialog