繁体   English   中英

RTC Static Memory 在带有 ESP-IDF 的 ESP32 上处于深度睡眠状态

[英]RTC Static Memory in Deep Sleep on ESP32 with ESP-IDF

我在 ESP32 内部的 RTC 上使用 8KB 的 static RAM 来保存少量传感器数据,以通过减少传输频率来降低功耗。 但即使是简单的示例代码,我也没有运气:

RTC_DATA_ATTR uint32_t testValue = 0;

{
    ESP_LOGE(TAG, "testValue = %d", testValue++);
    ...
}

在监视器中,我第一次可以看到值为 0,但这是任何人的猜测。

E (109) app_main: testValue = 0
...
...
E (109) app_main: testValue = -175962388

编辑

还尝试了属性:

RTC_NOINIT_ATTR uint32_t testValue = 0;

我究竟做错了什么?

我从其他渠道收到了我想分享的答案。 解决方案是设置:

esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_SLOW_MEM, ESP_PD_OPTION_ON);
esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_FAST_MEM, ESP_PD_OPTION_ON);

因此启用了 RTC memory 区域。 就我而言,我在代码的另一个区域(深度睡眠电源管理代码)中专门禁用了它们。 此解决方案不会显着影响深度睡眠功耗 ~ 10 uA。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM