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

Friederike Bruns and Philipp Ittershagen and Kim Grüttner
Forum on Specification and Design Languages (FDL)
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 concept for timing annotation and control blocks in C++. Our proposed blocks can be used to measure and profile software block execution timing. Furthermore, it can be used to control and enforce the software timing behavior at run-time. We have implemented our concept in a C++ library and tested it on an ARM Cortex A9 bare-metal platform. The usage of our library has been evaluated on a critical flight-control software for a multi-rotor system. The results show that our concept is working, while still having some room for systematic accuracy testing and optimization.
Sicherer Automatischer Software-Entwurf für Industrieanlagen