TinyTimber, reactive objects in C for real-time embedded systems

  • Authors:
  • Per Lindgren;Johan Eriksson;Simon Aittamaa;Johan Nordlander

  • Affiliations:
  • Luleå University of Technology, Luleå;Luleå University of Technology, Luleå;Luleå University of Technology, Luleå;Luleå University of Technology, Luleå

  • Venue:
  • Proceedings of the conference on Design, automation and test in Europe
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Embedded systems are often operating under hard real-time constraints. Such systems are naturally described as time-bound reactions to external events, a point of view made manifest in the high-level programming and systems modeling language Timber. In this paper we demonstrate how the Timber semantics for parallel reactive objects translates to embedded real-time programming in C. This is accomplished through the use of a minimalistic Timber Run-Time system, TinyTimber (TT). The TT kernel ensures state integrity, and performs scheduling of events based on given time-bounds in compliance with the Timber semantics. In this way, we avoid the volatile task of explicitly coding parallelism in terms of processes/threads/semaphores/monitors, and side-step the delicate task to encode time-bounds into priorities. In this paper, the TT kernel design is presented and performance metrics are presented for a number of representative embedded platforms, ranging from small 8-bit to more potent 32-bit micro controllers. The resulting system runs on bare metal, completely free of references to external code (even C-lib) which provides a solid basis for further analysis. In comparison to a traditional thread based real-time operating system for embedded applications (FreeRTOS), TT has tighter timing performance and considerably lower code complexity. In conclusion, TinyTimber is a viable alternative for implementing embedded real-time applications in C today.