object-oriented C++ RTOS for microcontrollers
FreeFreeFree tier
About object-oriented C++ RTOS for microcontrollers
distortos is an object-oriented, open-source C++ real-time operating system (RTOS) designed for microcontrollers. It follows a CMake-based cross-compiling workflow, using toolchain files to select target boards (e.g., STM32F4DISCOVERY). The RTOS is highly configurable, allowing users to fine-tune features through CMake GUI or command-line tools. It generates a static library (libdistortos.a) and includes a test application for verification. The project is hosted on GitHub under the DISTORTEC organization and is licensed under an open-source license.
Key Features
Object-oriented C++ design for RTOS
CMake-based cross-compiling build system
Support for multiple microcontroller boards via toolchain files
Highly configurable build options using CMake GUI or ccmake
Generates a static library (libdistortos.a)
Includes a test application target (distortosTest)
Follows typical CMake workflow for embedded development
Open-source hosted on GitHub
Pros & Cons
Pros
- Open-source with permissive licensing
- Modern C++ (C++17) object-oriented design improves code organization
- Familiar CMake workflow reduces learning curve for embedded developers
- Configuration system allows fine-tuning of RTOS features
- Active community on GitHub with forum support
Cons
- Limited board support currently (only STM32F4DISCOVERY explicitly documented)
- Requires bleeding-edge ARM GCC toolchain (10 or later)
- Documentation may be sparse for beginners
- Relies on CMake and Ninja, which may be less common in some embedded environments
Best For
Building real-time embedded applications for ARM Cortex-M microcontrollersDeveloping IoT devices with deterministic schedulingEducational projects for learning RTOS concepts with C++Prototyping and testing embedded software on STM32 platforms
FAQ
How do I build distortos?
Download the source, create a build folder, run CMake with a toolchain file (e.g., for STM32F4DISCOVERY), configure options via cmake-gui or ccmake, then build with ninja.
What boards are supported?
The documentation explicitly demonstrates support for the STM32F4DISCOVERY board, and toolchain files for other boards may be added by the community.
Is distortos free to use?
Yes, distortos is open-source and free to use, as indicated by its GitHub repository and lack of pricing information.
What toolchain is required?
The project requires arm-none-eabi GCC version 10 or later, and CMake version 3.8 or later. Ninja is recommended as the build tool.