Synchron - An API and Runtime for Embedded Systems (Artifact)

Authors Abhiroop Sarkar , Bo Joel Svensson



PDF
Thumbnail PDF

Artifact Description

DARTS.8.2.25.pdf
  • Filesize: 428 kB
  • 2 pages

Document Identifiers

Author Details

Abhiroop Sarkar
  • Chalmers University of Technology, Gothenburg, Sweden
Bo Joel Svensson
  • Chalmers University of Technology, Gothenburg, Sweden

Cite AsGet BibTex

Abhiroop Sarkar and Bo Joel Svensson. Synchron - An API and Runtime for Embedded Systems (Artifact). In Special Issue of the 36th European Conference on Object-Oriented Programming (ECOOP 2022). Dagstuhl Artifacts Series (DARTS), Volume 8, Issue 2, pp. 25:1-25:2, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2022)
https://doi.org/10.4230/DARTS.8.2.25

Artifact

Artifact Evaluation Policy

The artifact has been evaluated as described in the ECOOP 2022 Call for Artifacts and the ACM Artifact Review and Badging Policy

Abstract

Programming embedded applications involves writing concurrent, event-driven and timing-aware programs. Traditionally, such programs are written in machine-oriented programming languages like C or Assembly. We present an alternative by introducing Synchron, an API that offers high-level abstractions to the programmer while supporting the low-level infrastructure in an associated runtime system and one-time-effort drivers. Embedded systems applications exhibit the general characteristics of being (i) concurrent, (ii) I/O-bound and (iii) timing-aware. To address each of these concerns, the Synchron API consists of three components - (1) a Concurrent ML (CML) inspired message-passing concurrency model, (2) a message-passing-based I/O interface that translates between low-level interrupt based and memory-mapped peripherals, and (3) a timing operator, syncT, that marries CML’s sync operator with timing windows inspired from the TinyTimber kernel. We implement the Synchron API as the bytecode instructions of a virtual machine called SynchronVM. SynchronVM hosts a Caml-inspired functional language as its frontend language, and the backend of the VM supports the STM32F4 and NRF52 microcontrollers, with RAM in the order of hundreds of kilobytes. We illustrate the expressiveness of the Synchron API by showing examples of expressing state machines commonly found in embedded systems. The timing functionality is demonstrated through a music programming exercise. Finally, we provide benchmarks on the response time, jitter rates, memory, and power usage of the SynchronVM.

Subject Classification

ACM Subject Classification
  • Computer systems organization → Embedded software
  • Software and its engineering → Runtime environments
  • Computer systems organization → Real-time languages
  • Software and its engineering → Concurrent programming languages
Keywords
  • real-time
  • concurrency
  • functional programming
  • runtime
  • virtual machine

Metrics

  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    0
    PDF Downloads
Questions / Remarks / Feedback
X

Feedback for Dagstuhl Publishing


Thanks for your feedback!

Feedback submitted

Could not send message

Please try again later or send an E-mail