本帖最后由 RedpenCat 于 2025-6-30 15:56 编辑
我在drv_pm_lowPowerEnter()函数实现中看到这样一段代码:
void drv_pm_lowPowerEnter(void)
{
// ...
#if defined(MCU_CORE_826x)
drv_pm_sleep_mode_e sleepMode = (wakeupSrc & PM_WAKEUP_SRC_TIMER) ? PM_SLEEP_MODE_SUSPEND : PM_SLEEP_MODE_DEEPSLEEP;
#elif defined(MCU_CORE_8258) || defined(MCU_CORE_8278) || defined(MCU_CORE_B91) || defined(MCU_CORE_B92) || defined(MCU_CORE_TL721X) || defined(MCU_CORE_TL321X)
drv_pm_sleep_mode_e sleepMode = (wakeupSrc & PM_WAKEUP_SRC_TIMER) ? PM_SLEEP_MODE_DEEP_WITH_RETENTION : PM_SLEEP_MODE_DEEPSLEEP;
#endif
// ...
}
因为休眠过程中需要保持LED输出,所以我尝试将相应代码改为:
// NOTE: LED state can't be kept in DEEP_WITH_RETENTION mode, so use SUSPEND mode instead.
drv_pm_sleep_mode_e sleepMode = PM_SLEEP_MODE_SUSPEND;
在实际使用过程中,我发现Beacon Request(简称BR)、Data Request(简称DR)出现异常,设备运行一段时间后会终止BR或DR,并且使用bdb_networkSteerStart()也无法再次唤起BR。
整个测试过程中,设备都可以正常处理按键输入和LED输出。我又尝试了不进入休眠模式或使用DEEP_WITH_RETENTION休眠模式,都没有出现这种现象。
请问8258支持SUSPEND休眠模式吗?
|