mirror of
https://github.com/espressif/esp-idf.git
synced 2026-04-27 19:13:21 +00:00
esp32: Fix not the right time spent in a deep sleep
Before entering the deep sleep, the RTC and FRC counters are synchronized. Updating the boot_time. Added a unit test for this case. Fixed warnings for MULTIPLE_STAGES Closes https://github.com/espressif/esp-idf/issues/1840
This commit is contained in:
@@ -38,4 +38,9 @@ void esp_setup_syscall_table();
|
||||
*/
|
||||
void esp_set_time_from_rtc();
|
||||
|
||||
/*
|
||||
* Sync counters RTC and FRC. Update boot_time.
|
||||
*/
|
||||
void esp_sync_counters_rtc_and_frc();
|
||||
|
||||
#endif //__ESP_NEWLIB_H__
|
||||
|
||||
@@ -371,3 +371,11 @@ uint64_t system_get_rtc_time(void)
|
||||
#endif
|
||||
}
|
||||
|
||||
void esp_sync_counters_rtc_and_frc()
|
||||
{
|
||||
#if defined( WITH_FRC ) && defined( WITH_RTC )
|
||||
adjtime_corr_stop();
|
||||
int64_t s_microseconds_offset_cur = get_rtc_time_us() - esp_timer_get_time();
|
||||
set_boot_time(get_adjusted_boot_time() + ((int64_t)s_microseconds_offset - s_microseconds_offset_cur));
|
||||
#endif
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user