This is a list of currently (mid-2016) available Real-Time Operating systems relevant to the STM8. The author tried to include all RTOSes available for the STM8, and also others of particular importance. The list is focused on availability and does thus not discuss code size, speed, etc. It considers aspects of availability, such as the license, the supported compilers, and availability of ports to the ST7 and STM32 architectures.
RTOS | Active | License | SDCC STM8 | IAR STM8 | Cosmic STM8 | Raisonance STM8 | ST7 | STM32 |
Atomthreads | Yes | BSD | Yes | Yes | Yes | Yes | No | Yes |
BuguRTOS | Yes | GPL 3 + LE | Yes | Yes | No | Yes | No | Yes |
ChibiOS | Yes | GPL 3, APL 2, other | No | No | 2.4 | 2.4 | No | Yes |
CMX-TINY+ | | other | No | No | Yes | No | Yes | Yes |
Contiki | Yes | BSD | No | No | No | No | No | Yes |
embOS | Yes | other | No | Yes | No | No | Yes | Yes |
Erika Enterprise | Yes | GPL 2 + LE | No | No | No | No | No | Yes |
FreeRTOS | Yes | MIT | No | No | No | No | No | Yes |
IntrOS | Yes | GPL 3 | Yes | No | Yes | No | No | Yes |
µC/OS | Yes | other | No | No | No | No | No | Yes |
µKOS-III | Yes | GPL 3 | Planned | No | No | No | No | Yes |
mipOS | Yes | MIT | Yes | No | Yes | Yes | Yes | Yes |
nOS | Yes | MPL 2 | No | Yes | No | No | No | Yes |
NuttX | Yes | BSD | No | No | No | No | No | Yes |
Nut/OS | Yes | BSD | No | No | No | No | No | Yes |
OSA | No | BSD | No | Yes | Yes | Yes | No | No |
RIOT | Yes | LGPL | No | No | No | No | No | Yes |
RTA-OSEK | | other | No | No | No | No | Yes | No |
scmRTOS | Yes | MIT | No (req. C++ ss.) | Yes | No (req. C++ ss.) | No (req. C++ ss.) | No | Yes |
StateOS | Yes | GPL 3 | Yes | No | Yes | No | No | Yes |
Trampoline | Yes | GPL 2 | No | No | No | No | No | Yes |
Zephyr | Yes | Apache 2 | No | No | No | No | No | Yes |
Real-Time Operating Systems
Atomthreads
Atomthreads is a free, lightweight, portable, real-time scheduler for embedded systems. It was the first RTOS for the STM8. Most development is done by Kelvin Lawson, but there also is a small community of contributors and users around Atomthreads.
BuguRTOS
BuguRTOS is small portable OS-kernel for microcontrollers., which is developed by a single developer, shkolnick-kun. Source code comments are mostly in Russian.
ChibiOS
ChibiOS is a complete development environment for embedded applications including RTOS, an HAL, peripheral drivers, support files and tools. The STM8 was supported up to the 2.4 release. Then support was dropped, with an unsatisfactory toolchain situation stated as one of the reasons by the developers. However, the developers are considering bringing back STM8 support via SDCC.
CMX-TINY+
CMX-TINY+ provides slightly less functionality than the CMX-RTX RTOS. It was one of the first RTOSes available for the STM8.
Contiki
Contiki is an open source operating system for the Internet of Things. It is one of the more well-known OSes for small systems, but does not yet have an STM8 port.
embOS
embOS is a priority-controlled real time operating system, designed to be used as foundation for the development of embedded real-time applications.
Erika Enterprise
Erika Enterprise is a free of charge open-source OSEK/VDX Hard Real Time Operating System (RTOS).
FreeRTOS
FreeRTOS considers itself to be the market leading, de-facto standard and cross platform RTOS (though µC/OS below makes a similar claim). It is definitely one of the most common and important RTOSes. Unfortunately, it does not yet support the STM8.
IntrOS
IntrOS is a free cooperative operating system (OS) designed for deeply embedded applications, made by the same people as StateOS.
µC/OS
µC/OS considers itself the number one RTOS on earth (though FreeRTOS above makes a similar claim). It is a full-featured RTOS with full networking and file system. It is definitely one of the most common and important RTOSes. Unfortunately, it does not yet support the STM8.
µKOS-III
µKOS-III is a multi-tasking OS suitable for small embedded µController systems. An STM8 port is planned, but not yet available.
mipOS
mipOS is a cooperative multitasking RTOS designed for single-chip micro-controllers with severely limited RAM and ROM. Previously, it was apparently non-free and information or download links were hard to find, and some of it was available in Italian only. Now it can be found on GitHub under the MIT license.
nOS
nOS needs more documentation.
NuttX
NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. It is developed by an active community. It does not yet support the STM8.
Nu/OS
Nut/OS modular, open source, real time operating system for embedded platforms. It was originally developed by the community around the Ethernut boards.
OSA
OSA is a cooperative multitasking real-time operating system. The community is mostly Russian, and the Russian documentation seems to be more complete than the English one. OSA is no longer under active development.
RIOT
RIOT considers itself the friendly Operating System for the Internet of Things. It is developed by a big and very active community. It is likely to become one of the most common and important RTOSes. Unfortunately, it does not yet support the STM8.
RTA-OSEK
RTA-OSEK provides a production real-time operating system for applications in all areas of automotive ECU design. It supports ST7, the predecessor of the STM8, but not yet the STM8.
scmRTOS
scmRTOS is a free tiny preemptive Real-Time Operating System intended for use with Single-Chip Microcontrollers. It is developed by an active community. Unlike the other RTOSes in this list, scmRTOS is not written in C, but in a subset of C++.
StateOS
StateOS is free, real-time operating system (RTOS) designed for deeply embedded applications with a focus on speed and code size. It is made by the same people as IntrOS.
Trampoline
Trampoline is a static RTOS for small embedded systems. Its API is aligned with OSEK/VDX OS and AUTOSAR OS 4.1 standards. It is developed by a small, active community.
Compilers
There are currently 4 mainstream C implementations for the STM8. A
more extensive comparison of them is outside the scope of this document.
SDCC
SDCC is a free retargettable, optimizing Standard C (ANSI C89, ISO C99, ISO C11) compiler suite. Unlike the other compilers for the STM8 it does not use virtual registers, resulting in lower interŕupt latency at the price of bigger code size. SDCC added support for the STM8 later than others compilers, and SDCC support in RTOSes is not yet up to the level of other compilers.
IAR
IAR Embedded Workbench for STM8 is a completely integrated development environment incorporating a compiler, an assembler, a linker and a debugger. It nearly fully supports the ANSI C89 and ISO C99 standards. It tends to be best at optimizing for code speed. Even though IAR aded STM8 support later than Cosmic and Raisonance, IAR is supported by more RTOSes. IAR is the only compiler for STM8 that besides C also supports a subset of C++.
Cosmic
The
Cosmic STM8 Cross Development Tools mostly support the ANSI C89 and ISO C99 standards. Its optimizations provide a reasonable balance between code size and code speed.
Raisonance
The
Raisonance STM8, ST7 C Compiler mostly supports the ANSI C89 standard. It tends to be best at optimizing for code size.