Yesterday I finally completed third version of distortos - a RTOS I've been working on for over 2 years, aimed primarily at C++ enthusiasts. In the most recent version, which supports exactly 302 microcontrollers, there are quite a few new features, most of them probably related to the built-in HAL. The most important changes introduced in this version, in chronological order, are:
- support for periodic software timers,
- easy to use serial port driver, operating on hardware exclusively via abstract interface class, with implementations of this interface class for all supported chip families (STM32F0, STM32F1, STM32F4), currently only interrupt-driven,
- RS-485 bus driver, based on the serial port driver mentioned above,
- SPI master mode bus driver, also using the hardware only through abstract interface class, obviously with implementations for all supported microcontrollers, also interrupt-driven only,
- abstract base class for external peripherals connected to SPI bus with first implementation of this interface in the form of driver for popular SPI EEPROMs (Atmel AT25xxx, ON Semiconductor CAT25xxx, ST M95xxx, Microchip 25xxxxx or similar),
- fixes required by GCC 6, so the most recent bleeding-edge-toolchain (GCC 6.2.0) can be used with no issues,
- replacement of distortosConfiguration.h generator which used AWK with the one using only shell and sed, so AWK is no longer required by this project.
By the way - I've completely forgot to write about version 0.2.0, which was published long time ago. So while we're at it, I'll briefly mention that the biggest additions in the previous version were support for ARMv6-M architecture (ARM Cortex-M0, ...), STM32F0 and STM32F1 chip families.
Source code packages, most recent API reference and changelog can be obviously found on project's website.