我在使用FreeRTOS任务的项目中工作,我想进入deep_sleep。在进入deep_sleep之前有什么我应该做的吗?或者在唤醒后,RTOS调度程序就像什么都没有发生一样工作?
发布于 2021-05-10 23:07:12
没有简单的方法来混合freeRTOS和deep_sleep模式。在深度睡眠期间,CPU断电并且其上下文丢失,但是RTC存储器可以保留。由于SRAM的所有内容都丢失了,所以我们在这里没有简单的备份-恢复来安全地恢复从深度睡眠中出来的所有内容。
但是你能做的就是在进入深度睡眠之前把所有的东西都带到一个安全的状态,你可以用信号通知你的所有任务完成它们正在做的事情并退出,然后利用ESP32相对较低的唤醒延迟。对于连接Wi-Fi的设备来说,这是非常不方便的,但对于将在几秒钟内唤醒并发送一次信标的BLE设备来说,这或多或少是可以接受的。
您还需要通过启用CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP选项来微调第二阶段引导加载器的配置,以便从深度睡眠中唤醒要比从冷重置中引导更快。
https://stackoverflow.com/questions/67367391
复制相似问题