Higher-Order Concurrency for Microcontrollers
Paper in proceeding, 2021
We address this challenge by introducing SenseVM - a bytecode-interpreted virtual machine that provides a message-passing based higher-order concurrency model, originally introduced by Reppy, for microcontroller programming. This model treats synchronous operations as first-class values (called Events) akin to the treatment of first-class functions in functional languages. This primarily allows the programmer to compose and tailor their own concurrency abstractions and additionally, abstracts away unsafe memory operations, common in shared-memory concurrency models, thereby making microcontroller programs safer, composable and easier-to-maintain.
Our VM is made portable via a low-level bridge interface, built atop the embedded OS - Zephyr. The bridge is implemented by all drivers and designed such that programming in response to a software message or a hardware interrupt remains uniform and indistinguishable. In this paper we demonstrate the features of our VM through an example, written in a Caml-like functional language, running on the nRF52840 and STM32F4 microcontrollers.
concurrency
virtual machine
microcontroller
Functional Programming
Author
Abhiroop Sarkar
Chalmers, Computer Science and Engineering (Chalmers), Functional Programming
Robert Krook
Chalmers, Computer Science and Engineering (Chalmers), Functional Programming
Joel Svensson
Chalmers, Computer Science and Engineering (Chalmers), Functional Programming
Mary Sheeran
Chalmers, Computer Science and Engineering (Chalmers), Functional Programming
MPLR 2021 - Proceedings of the 18th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes
26-36
9781450386753 (ISBN)
Münster, Germany,
Octopi: Säker Programering för Sakernas Internet
Swedish Foundation for Strategic Research (SSF) (RIT17-0023), 2018-03-01 -- 2023-02-28.
Subject Categories
Computer Engineering
Embedded Systems
Computer Systems
Areas of Advance
Information and Communication Technology
DOI
10.1145/3475738.3480716
ISBN
9781450386753