Skip to content

Supported Platforms

A platform is an implementation of the OSAL for one operating system, one processor and one board, and its name gives the three. Termina currently supports six platforms:

Platform Operating system Target Toolchain
posix-gcc POSIX emulator Linux or macOS host host gcc
rtems5-leon3sf-nexysa7 RTEMS 5 LEON3 (SPARC V8), soft-float, on the Nexys A7 sparc-gaisler-rtems5-gcc (Gaisler RCC)
rtems6-zynq7000-pynqz2 RTEMS 6 Zynq-7000 (Arm Cortex-A9) on the PYNQ-Z2 arm-rtems6-gcc (RTEMS Source Builder)
rtems6-rv32im-spike RTEMS 6 RV32IM on the Spike simulator riscv-rtems6-gcc (RTEMS Source Builder)
rtems6-noel32im-artya7 RTEMS 6 NOEL-V (RV32IM) on the Arty A7 riscv-rtems6-gcc (RTEMS Source Builder)
freertos10-stm32l432-nucleol432kc FreeRTOS 10 STM32L432 (Arm Cortex-M4) on the NUCLEO-L432KC arm-none-eabi-gcc

The posix-gcc platform runs Termina applications on a conventional Unix-like host, which makes it the usual choice for prototyping and functional validation; it preserves the scheduling logic of the reactive model, but not its timing. On the embedded platforms the build produces an image to be loaded on the board, and tasks are scheduled by the RTOS with the priorities declared in the application module.

Each platform has a page of its own, linked from the table, which describes its execution model or its board, the servers that debug it from the host, and how its programs and its tests are loaded.

The platform is selected per project, in termina.yaml, and the chapter on the build system describes how the generated Makefile invokes the corresponding toolchain. The Docker image distributed by the project bundles the toolchains of every platform, so switching among them does not require installing anything.