mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
29 lines
1.2 KiB
Markdown
29 lines
1.2 KiB
Markdown
## System Notes
|
|
|
|
### Timekeeping
|
|
|
|
The following are the timekeeping mechanisms available and their differences:
|
|
|
|
1. System time (`esp_system_get_time`)
|
|
|
|
Time with the origin at `g_startup_time`. The implementation is not handled by `esp_system`,
|
|
but it does provide a default implementation using RTC timer. Currently, `esp_timer`
|
|
provides system time, since the hardware timers are under the control of that
|
|
component. However, no matter the underlying timer, the system time provider
|
|
should maintain the definition of having the origin point at `g_startup_time`.
|
|
|
|
2. `esp_timer` time (`esp_timer_get_time`)
|
|
|
|
This is the time read from an underlying hardware timer, controlled through config. Origin
|
|
is at the point where the underlying timer starts counting.
|
|
|
|
3. `newlib` time (`gettimeofday`)
|
|
|
|
Timekeeping function in standard library. Can be set (`settimeofday`) or moved forward/backward (`adjtime`);
|
|
with the possibility of the changes being made persistent through config.
|
|
Currently implemented in terms of system time, as the point of origin is fixed.
|
|
If persistence is enabled, RTC time is also used in conjuction with system time.
|
|
|
|
4. RTC time (`esp_rtc_get_time_us`)
|
|
|
|
Time read from RTC timer. |