diff --git a/components/esp32/cpu_start.c b/components/esp32/cpu_start.c index 86af32b69..9f3a3bb22 100644 --- a/components/esp32/cpu_start.c +++ b/components/esp32/cpu_start.c @@ -268,7 +268,7 @@ void start_cpu0_default(void) _GLOBAL_REENT->_stderr = (FILE*) &__sf_fake_stderr; #endif esp_timer_init(); - esp_setup_time_syscalls(); + esp_set_time_from_rtc(); #if CONFIG_ESP32_APPTRACE_ENABLE esp_err_t err = esp_apptrace_init(); if (err != ESP_OK) { diff --git a/components/esp32/sleep_modes.c b/components/esp32/sleep_modes.c index 3c9a8484d..9cf886722 100644 --- a/components/esp32/sleep_modes.c +++ b/components/esp32/sleep_modes.c @@ -248,7 +248,7 @@ esp_err_t esp_light_sleep_start() // At this point, if FRC1 is used for timekeeping, time will be lagging behind. // This will update the microsecond count based on RTC timer. - esp_setup_time_syscalls(); + esp_set_time_from_rtc(); // However, we do not advance RTOS ticks here; doing so would be rather messy, // as ticks can only be advanced on CPU0. diff --git a/components/newlib/platform_include/esp_newlib.h b/components/newlib/platform_include/esp_newlib.h index eac354425..192844393 100644 --- a/components/newlib/platform_include/esp_newlib.h +++ b/components/newlib/platform_include/esp_newlib.h @@ -34,10 +34,8 @@ void esp_reent_init(struct _reent* r); void esp_setup_syscall_table(); /** - * Initialize hardware timer used as time source for newlib time functions. - * - * Called from the startup code, not intended to be called from application. + * Update current microsecond time from RTC */ -void esp_setup_time_syscalls(); +void esp_set_time_from_rtc(); #endif //__ESP_NEWLIB_H__ diff --git a/components/newlib/time.c b/components/newlib/time.c index d7eecbfba..1655c0b8e 100644 --- a/components/newlib/time.c +++ b/components/newlib/time.c @@ -137,14 +137,12 @@ uint32_t esp_clk_slowclk_cal_get() return REG_READ(RTC_SLOW_CLK_CAL_REG); } -void esp_setup_time_syscalls() +void esp_set_time_from_rtc() { -#if defined( WITH_FRC1 ) -#if defined( WITH_RTC ) +#if defined( WITH_FRC1 ) && defined( WITH_RTC ) // initialize time from RTC clock s_microseconds_offset = get_rtc_time_us() - esp_timer_get_time(); -#endif //WITH_RTC -#endif // WITH_FRC1 +#endif // WITH_FRC1 && WITH_RTC } clock_t IRAM_ATTR _times_r(struct _reent *r, struct tms *ptms)