Oberon RTK

Oberon RTK

Oberon Real-time Kernel for Cortex-M series of microcontrollers

Purpose

Oberon RTK is a framework for writing multi-threaded embedded control programs. It targets Cortex-M series of microcontrollers. Written in Oberon, it uses Astrobe's cross-compilers and linkers.

Oberon RTK provides kernels to structure the control program as a set of separate control processes.

The framework and tools currently support the RP2040 and RP2350 of Raspberry Pi, as well as the STM32U585 and STM32H573 of ST Microelectronics. There is some support for microcontrollers of NXP Semiconductors, but is not in the current focus.

Scope

Overview

Oberon RTK consists of

  • the framework module library,
  • a set of tools,
  • example and test programs.

Framework Module Library

The module library provides the building blocks for Astrobe Oberon control programs on the supported MCUs: device modules for the peripheral hardware, kernels for multi-threaded execution, run-time error handling with stack traces, a structured startup sequence, and – on the TrustZone-enabled MCUs – the primitives for Secure/Non-secure programs.

On a conceptual level, the library is consistent across the supported MCUs; the per-MCU implementations realise those concepts on each vendor's hardware. The device modules follow the same structural patterns from MCU to MCU, but the programmer still works directly with each MCU's hardware – by design, there is no thick HAL layer hiding the differences.

In keeping with this, the library favours explicit construction over implicit initialisation: the programmer builds what is needed, with full transparency what each step means and impacts. Of course there is support for program start-up, for example, but all the corresponding code is right there in the framework library, without hidden run-time environment configuration data and routines. You program the clock tree exactly as you need it to be for your specific use case, using the device modules in the framework. This is both lean-minimalistic and transparent.

Two kernels are available: a cooperative kernel and a preemptive actor-based kernel. Programs select the kernel by what they import; the rest of the framework is the same.

The library is not complete regarding the peripheral devices of every supported MCU – it probably will never be – but the device-module structure makes adding new ones straight-forward.

Tools

The central tools are the Astrobe series of cross compilers and linkers. Since Oberon RTK depends on a few modules from the Astrobe framework, the user needs to have a registered copy of one of the used Astrobe products (see below).

Oberon RTK provides a complementary set of tools, for debugging and testing, for creating Secure/Non-secure programs, and for other purposes.

Example and Test Programs

A curated set of example programs provides starting points, both for how to use the tools, as well as for the exploration of the framework library.

There is a second set of test programs the value of which mainly consists of the documented results. They are based on older versions of the framework library.

Getting Started

When you're ready to check out if Oberon RTK is for you, please refer to Get Started. This section provides step-by-step instructions how to configure Astrobe, build the first example programs, and then dive into debugging and getting a simple S/NS program up and running.

Audience

Oberon RTK and this site are targeted at programmers with a good understanding of microcontrollers, as well as writing control software in general. Oberon RTK attempts to provide a level of abstraction – data structures and procedures – that is systematic and provides utility, but permits the programmer full control of the underlying controller hardware. Which means that the programmer needs to understand that hardware. If you are familiar with the reference manuals and data sheets of the supported MCUs, and have consulted assembly listings, you will get the most out of Oberon RTK.

The provided example and test programs provide useful starting points.

Oberon RTK evolves with insights gained in practice, as well as from evaluating, assessing, and testing concepts and implementations of different kernels, systematic framework extensions for new peripheral devices, consistent module and execution structures, run-time error handling and autonomous recovery, or Secure/Non-secure programs for MCUs with TrustZone.

MCUs and Boards

The framework is targeted at, and tested with:

Astrobe for RP2350

Astrobe for RP2040

The most current versions of Astrobe for RPx are used, currently v10.0. Version v9.3 should work as well, but this backward compatibility has not been fully tested starting from lib/v2.1.

This Website

This is an overhauled and restructured version of the Oberon RTK website. There is still work to be done to figure out what is helpful, and maintainable. Certain pages may still be stubs, or contain information that needs reviewing and adaptation.

Questions and Support

CFB Software has kindly granted permission to ask and answer questions related to this framework on the Astrobe forum. You can also e-mail me, or use the GitHub issue functionality.

Status, Updates, Changes, News

This Project is in active development.

Latest updates and changes: Change Note 2026-06-03

Check out section Updates for all updates, changes, and news.

Site Structure and Navigation

See Site Structure & Navigation.

Licences

See Licences.