object-oriented C++ RTOS for microcontrollers
* fully preemptive
* round-robin and FIFO scheduling
* all basic primitives aim for maximum compatibility with POSIX, thread support library from C++11 and other established standards
* support for various mutex types (normal, error-checking, recursive) and mutex protocols (normal, priority inheritance, priority protection)
* software timers
* POSIX-style signals
* static design where it is possible and makes sense
* object-oriented design
* written in C++11
Homepage
Download
Recent Releases
0.7.005 May 2019 17:31
major feature:
- full support for CMake;
- removed support for Kconfig and make;
- support for NUCLEO-F042K6 and 32F072BDISCOVERY boards with STM32F0 chips;
- STM32 DMA drivers;
- DMA-based STM32 SPI master driver;
- a lot of fixes and improvements in interrupt-based STM32 SPI master driver;
- STM32 SDMMC driver, currently only for STM32F7;
- massive rework of high-level SPI master driver API;
- SD card driver, for both SDMMC card interface and SPI-mode;
- framework for file systems, with implementation for littlefs-v1;
- useful wrapper functions for distortos::Mutex;
0.6.001 Jul 2018 22:44
major feature:
Added
Support for all 81 STM32L4 devices.
Support and test configurations for NUCLEO-L432KC and NUCLEO-L476RG boards with STM32L4 chips.
Support and test configuration for NUCLEO-F446RE board with STM32F4 chip.
distortos/C-API/ConditionVariable.h C-API for condition variables, implemented as wrappers for distortos::ConditionVariable member functions.
distortos/C-API/Mutex.h C-API for mutexes, implemented as wrappers for distortos::Mutex member functions.
distortos/C-API/Semaphore.h C-API for semaphores, implemented as wrappers for distortos::Semaphore member functions.
distortos::fromCApi() which can be used to cast referenes to C-API objects (like distortos_Semaphore) into references to regular C++ API objects (like distortos::Semaphore).
distortos::DynamicSoftwareTimer class a dynamic and (mostly) non-templated counterpart of distortos::StaticSoftwareTimer.
distortos::ThisThread::exit(), similar to pthread_exit(), which can be used to cause early exit of the current thread.
distortos::ThreadIdentifier type which can be used to uniquely identify and access thread s instance. Identifier of the thread can be obtained using distortos::Thread::getIdentifier() and distortos::ThisThread::getIdentifier().
Unit tests of C-API for condition variables, mutexes and semaphores, using Catch unit test framework and Trompeloeil mocking framework. Build system of unit tests uses CMake.
New overload of distortos::Mutex s constructor for normal type.
BIND_LOW_LEVEL_PREINITIALIZER() and BIND_LOW_LEVEL_INITIALIZER() macros, which can be used to bind (at compile/link time) any function as low-level preinitializer (executed before .bss and .data sections initialization, before constructors for global and static objects) or low-level initializer (executed after .bss and .data sections have been initialized, but before constructors for global and static objects). Each preinitializer/initializer has its own order of execution from 0 to 99.
include/CONCATENATE.h and include/STRIN
0.5.014 Sep 2017 16:58
major feature:
http://distortos.org/distortos-change-log/#0.5.0
0.4.011 Mar 2017 17:20
major feature:
http://distortos.org/distortos-change-log/#0.4.0
0.3.024 Nov 2016 23:23
major feature:
http://distortos.org/distortos-change-log/#0.3.0
0.2.003 May 2016 20:30
major feature:
http://distortos.org/distortos-change-log/#0.2.0
0.1.006 Mar 2016 14:34
major feature:
http://distortos.org/distortos-change-log/#0.1.0
06 Mar 2016 14:31
minor feature:
|