mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
esp_system: add notes on timekeeping
This commit is contained in:
parent
44a8dc9342
commit
32aa5f7e25
29
components/esp_system/README.md
Normal file
29
components/esp_system/README.md
Normal file
@ -0,0 +1,29 @@
|
||||
## 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.
|
Loading…
Reference in New Issue
Block a user