Niels Gandraß: Tackling the RIOT-OS Low-level Timer

Every embedded application brings its own set of timekeeping requirements. As with low-power applications in particular, handling hardware timers efficiently while utilizing available power-saving features is crucial. RIOT-OS, an embedded operating system for resource-restricted IoT devices, exposes timers through multiple low-level APIs. Current versions, however, only provide a minimal set of common features, hereby leaving integration of platform specific optimizations solely to the application developer.

In our previous work, we conducted a comprehensive analysis of MCU timer hardware. Now we present a draft for an updated low-level timer-API that we furthermore implemented for the STM32L4 device family. This talk starts by pointing out deficiencies of current solutions and defining (meta-)goals for our aspired timer subsystem. Design decisions, such as integrating various timer types via a driver based approach and exposing platform specific features through a generic interface, are subsequently discussed in detail. Last, we summarize the proposed draft, highlight advantages as well as potential problems, and portray our future roadmap.

Slides