pw_chrono_embos#
pw_chrono_embos
is a collection of pw_chrono
backends that are
implemented using embOS v4 for 32bit targets.
Warning
This module is still under construction, the API is not yet stable.
SystemClock backend#
The embOS based system_clock
backend implements the
pw_chrono:system_clock
facade by using OS_GetTime32()
. An
InterruptSpinLock is used to manage overflows in a thread and interrupt safe
manner to produce a signed 64 bit timestamp. Note that this does NOT use
OS_GetTime_us64()
which is not always available, this could be considered
for a future alternative backend for the SystemClock.
The SystemClock::now()
must be used more than once per overflow of the
native embOS OS_GetTime32()
overflow. Note that this duration may
vary if OS_SUPPORT_TICKLESS
is used.
SystemTimer backend#
The embOS based system_timer
backend implements the
pw_chrono:system_timer
facade by using embOS’s software timer API.
pw::chrono::SystemTimer
instances use OS_TIMER_EX
&
OS_CreateTimerEx
, dynamic memory allocation is never used.
Build targets#
The GN build for pw_chrono_embos
has one target: system_clock
.
The system_clock
target provides the
pw_chrono_backend/system_clock_config.h
and pw_chrono_embos/config.h
headers and the backend for the pw_chrono:system_clock
.