Programming microcontrollers through high-level abstractions: The OMicroB project

In this paper, we present an approach for programming microcontrollers that provides more expressivity and safety than the low-level language approach traditionally used to program such devices. To this end, we provide various abstraction layers (abstraction of the microcontroller, of the electronic...

Full description

Saved in:
Bibliographic Details
Published inJournal of computer languages (Online) Vol. 77; p. 101228
Main Authors Varoumas, Steven, Pesin, Basile, Vaugon, Benoît, Chailloux, Emmanuel
Format Journal Article
LanguageEnglish
Published Elsevier 01.11.2023
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:In this paper, we present an approach for programming microcontrollers that provides more expressivity and safety than the low-level language approach traditionally used to program such devices. To this end, we provide various abstraction layers (abstraction of the microcontroller, of the electronic components of the circuit, and of concurrency) which, while being adapted to the scarce resources of the hardware, offer high-level programming traits for the development of embedded applications. The various presented abstractions make use of an OCaml virtual machine, called OMicroB, which is able to run on devices with limited resources. These take advantage of the expressivity and safety of the OCaml language (parameterized modules, advanced type system). Its extensibility allows to define a synchronous extension to manage concurrency while keeping a good level of efficiency at execution. We illustrate the value of our work on both entertainment applications and embedded software examples.
ISSN:2590-1184
DOI:10.1016/j.cola.2023.101228