The support of Suspend-to-RAM with MICROSAR Adaptive requires, that both the operating system and the C++ library support a steady clock behavior.

This means that the POSIX clock type CLOCK_MONOTONIC and the C++ clock type std::chrono::steady_clock stop counting ticks during ECU suspend.

When the kernel resumes scheduling the user threads on the ECU, the clocks should continue counting at the point in time of ECU suspend.

 

If this requirement is not met, such that user processes are missing time intervals of the clocks mentioned before, premature expiration of platform health manager deadlines can occur. If the operating system exposes such behavior, it can be worked around by suppressing supervision during suspend. Refer to using dedicated function group states [8] for mode dependent supervision.