Part I: Getting Started

QRT is an advanced preemptive, priority-based Real-Time Kernel designed to address the demanding needs of modern embedded applications requiring precise timing, deterministic execution, and efficient resource management. Engineered specifically for embedded platforms, QRT provides robust performance suitable for a wide variety of real-time use cases.

This manual provides technical documentation for QRT. It covers the kernel architecture, scheduling mechanisms, memory protection, API usage, and integration requirements. This document is intended for embedded software developers and system integrators using QRT in microcontroller-based systems.

Prerequisites

The reader is expected to have:

  • A working knowledge of the target processor architecture (e.g., ARM Cortex-M).

  • Familiarity with C programming in embedded environments.

  • Experience using build tools, toolchains, and debugging software relevant to the target platform.

Document Conventions

  • Monospaced — API calls, macros, configuration defines.

  • Bold — Important terms or emphasis.

Supported Architectures

QRT currently supports the ARM Cortex-M family of microcontrollers:

  • ARMv6-M (Cortex-M0+)

  • ARMv7-M (Cortex-M3, M4, M7)

  • ARMv8-M Baseline (Cortex-M23)

  • ARMv8-M Mainline (Cortex-M33, M35P, M52, M55, M85)

All targets are supported in little-endian mode. FPU and TrustZone extensions are supported where available.

Supported Toolchains

QRT is officially supported with the Arm GNU Toolchain (ARM GCC 13.x or later).

Other compilers may work if they follow the ARM EABI specification, but they are not verified or maintained.

Building the Kernel

Build Configuration

QRT is configured using a set of compile-time configuration options defined in the header file qrt_cfg.h.

Default configuration options are tuned for ARM Cortex-M3.

Build Requirements

QRT itself is build-system agnostic.

However, to build the official demo application distributed with QRT requires the following tools:

Building the Demo Application

To build the demo navigate to the root directory of the QRT source tree and run the following commands:

cmake -B build -G Ninja -DCMAKE_TOOLCHAIN_FILE=arm-none-eabi-gcc.cmake
cmake --build build

This produces the demo binary and the static library libqrt.a.