ESP-IDF深度睡眠和FreeRTOS任务



我从事的项目使用FreeRTOS任务,我想进入deep_sleep。在进入深度睡眠之前,我应该做些什么吗?或者在醒来后,RTOS调度器在什么都没发生的情况下工作?

没有简单的方法可以将freeRTOS和deep_sleep模式混合使用。在深度睡眠期间,CPU断电,其上下文丢失,但RTC内存可以保留。由于SRAM的所有内容都丢失了,因此我们无法在深度睡眠后安全地恢复所有内容。

但你能做的是在进入深度睡眠之前将一切降到安全状态,你可以向所有任务发出信号,让它们完成正在做的事情并退出,然后利用ESP32相对较低的唤醒延迟。对于连接Wi-Fi的设备来说,这是一个非常令人不快的不便,但对于将在几秒钟内醒来并发送一次信标的BLE设备来说,它或多或少是可以接受的。

您还希望通过启用CONFIG_bootloader_SKIP_VALIDATE_IN_DEEP_SLEEP选项来微调第二阶段引导加载程序的配置,以便从深度睡眠中醒来比从冷重置中引导更快。

最新更新