1.2.11.1 How the Library Works

The tick-less implementation reduces the overheads of servicing the unneeded hardware timer interrupt on every tick. The tick-less implementation can also provide higher resolution compared to a tick based implementation, as there is no fixed tick rate.

Abstraction Model

The Time System Service library provides an abstraction to the hardware timer to provide following functionalities.

  • Periodic Callback

  • One Shot/Single Callback

  • Delays

The following diagram depicts the Time System Service abstraction model.

Time System Service configured in tick-less mode

sys_time_abstraction_model_tickless_working

Time System Service configured in tick-based mode

sys_time_abstraction_model_tickbased_working

Execution Flow

  • The Time System Service registers a callback with the underlying hardware timer peripheral library

  • Depending on the alarm/delay time periods requested by various clients, the implementation manages the hardware timer such that a compare interrupt is generated only when needed and at appropriate times

    • This is achieved by maintaining a sorted list of timing requested by different clients such that the head of the list always indicates the time after which the hardware timer must interrupt and notify the Timer System Service

  • Inside the Time System Service callback, the list is updated and a callback is given to the client for which the alarm/delay has expired

The following diagram shows how the tick-less implementation reduces the number of hardware interrupts. In this example, two clients - Client A and Client B requests a periodic alarm every 30 ms and 70 ms respectively.

sys_time_execution_flow_time_diagram