Time Measurement and Control Blocks for Bare-Metal C++ Applications

Friederike Bruns, Irune Yarza, Philipp Ittershagen and Kim Grüttner
ACM Transactions on Embedded Computing Systems
Precisely timed execution of resource constrained bare-metal applications is difficult, because the embedded software developer usually has to implement and check the timeliness of the executed application through manual interaction with timers or counters.In the scope of this work, we propose a combined timing specification and concept for time annotation and control blocks in C++. Our proposed blocks can be used to measure and profile software block execution time. Furthermore, it can be used to control and enforce the software time behavior at run-time. After the application of these time blocks a trace based verification against the block based timing specification can be performed to obtain evidence on the correct implementation and usage of the time blocks on the target platform.We have implemented our time block concept in a C++ library and tested it on an ARM Cortex A9 bare-metal platform. The combined usage of timing specification and our time block library has been successfully evaluated on a critical flight-control software for a multi-rotor system.
11 / 2020
Sicherer Automatischer Software-Entwurf für Industrieanlagen