Most embedded software is currently developed using the C programming language, even though its low level of abstrac- tion requires a lot of effort to the programmer. The C++ language is a better choice because: it raises the level of abstraction; it is strongly typed, so it prevents many com- mon programming mistakes; it can be made as efficient as C through fine-grained customisation of memory mechanisms; it can be easily adapted to domain-specific needs. In ad- dition, recent compilers have grown in maturity and per- formance, and the new standard considerably improves the language by introducing new concepts and an easier syntax. In this paper we present ADOK, a minimal Real-Time Op- erating System entirely written in C++ with the exception of a few lines of assembler code. It directly offers a C++ interface to the developer, and it provides a flexible schedul- ing framework which allows the developer to customise the scheduling to its needs. In particular, we implement a two- level scheduler based on Earliest Deadline First, the Stack Resource Policy protocol for sharing resources and support for mode changes. We demonstrate through examples and a small case-study that ADOK can substantially improve productivity without sacrificing on performance.

A Minimal Object Oriented Real-Time Operating System in C++

LIPARI, Giuseppe
2013-01-01

Abstract

Most embedded software is currently developed using the C programming language, even though its low level of abstrac- tion requires a lot of effort to the programmer. The C++ language is a better choice because: it raises the level of abstraction; it is strongly typed, so it prevents many com- mon programming mistakes; it can be made as efficient as C through fine-grained customisation of memory mechanisms; it can be easily adapted to domain-specific needs. In ad- dition, recent compilers have grown in maturity and per- formance, and the new standard considerably improves the language by introducing new concepts and an easier syntax. In this paper we present ADOK, a minimal Real-Time Op- erating System entirely written in C++ with the exception of a few lines of assembler code. It directly offers a C++ interface to the developer, and it provides a flexible schedul- ing framework which allows the developer to customise the scheduling to its needs. In particular, we implement a two- level scheduler based on Earliest Deadline First, the Stack Resource Policy protocol for sharing resources and support for mode changes. We demonstrate through examples and a small case-study that ADOK can substantially improve productivity without sacrificing on performance.
File in questo prodotto:
File Dimensione Formato  
paper-final.pdf

accesso aperto

Tipologia: Documento in Pre-print/Submitted manuscript
Licenza: Dominio pubblico
Dimensione 120.47 kB
Formato Adobe PDF
120.47 kB Adobe PDF Visualizza/Apri

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/11382/420216
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus ND
social impact