Skip to content

micro-LF Version v0.1.0

Latest

Choose a tag to compare

@tanneberger tanneberger released this 04 Jul 22:29

micro-LF v0.1.0 — First stable release of the micro-LF ecosystem

header

After roughly two years of development, we are very excited for our first release of micro-LF. This release marks the first stable snapshot of a runtime and language that brings the reactor model of computation to microcontrollers and deeply resource-constrained systems.

What is reactor-uc?

reactor-uc is the execution engine for programs written in micro-LF a slightly changed version of the Lingua Franca (https://lf-lang.org) language, targeting embedded systems. Programs are compiled from .ulf source files by ulfc (the micro-LF compiler) into pure C, then linked against this runtime. The result is a deterministic, event-driven application with no heap allocation at runtime and a well-defined model of time.

Features

Core Reactor Model

  • micro-LF implements the full reactor MoC
  • reactor-uc has a static memory footprint, we pre-allocate everything.

Scheduling

  • Dynamic scheduler: flexible priority-queue-based execution for general use

Federated execution

  • Distributed reactor programs across multiple nodes over a network
  • Clock synchronization between federates
  • Coordinated startup and shutdown
  • Transient federates (nodes that can join and leave a federation)
  • Configurable maxwait / tardy handler policies for late messages

Platform support

We provide template repositories for all platforms, the supported network protocols are listed in braces behind:

  • Zephyr RTOS (TCP/IP)
  • RIOT OS (TCP/IP and Coap over 6LoWPAN)
  • FreeRTOS
  • ESP-IDF
  • Raspberry Pi Pico (RP2040) (UART)
  • Patmos (time-predictable processor) (S4NoC)
  • POSIX (Linux / macOS, for development and testing) (TCP/IP)

Language & tooling

  • .ulf file extension for micro-LF source programs
  • ulfc compiler with platform-aware code generation
  • void-typed ports supported
  • Action scheduling policies
  • Annotations replacing legacy property syntax

Quality

  • Unit, integration, and platform test suites
  • CI across all supported platforms
  • clang-format enforced style

See the documentation the full documentation here: https://micro-lf.org/

Thank You

I want to thank all the contributor, that added platforms, fixed bugs, and generally believed in this project.