distortos 0.6.0

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

Tags rtos scheduler realtime preemptive arm cortex-m0 cortex-m3 cortex-m4 cortex-m7 stm32 c++ c11 mcu electronics embedded
License MPL
State beta

Recent Releases

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: