STM8

Compiler Comparison
RTOS Availability

Tutorials

STM8L-DISCOVERY

LED Timer
Serial

STM8S-DISCOVERY

LED Timer
Serial

STM8A-DISCOVERY

STM8AF LED Timer
STM8AF Serial
STM8AF Benchmarks
STM8AL LED Timer
STM8AL Serial

EX-STM8-Q64a-207

LED Timer
Serial
Benchmarks

Open8S208Q80

LED Timer
Serial
Benchmarks

EX-STM8-Q48a-105

LED Timer
Serial

STM8/128-EVAL

LED Timer
Serial
Benchmarks

STM8L101-EVAL

Serial

colecovision.eu

ColecoVision

STM8

MCS-51

LLVM+SDCC

Contact

Availability of Real-Time Operating Systems for the STM8

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.

RTOSActiveLicenseSDCC STM8IAR STM8Cosmic STM8Raisonance STM8ST7STM32
AtomthreadsYesBSDYesYesYesYesNoYes
BuguRTOSYesGPL 3 + LEYesYesNoYesNoYes
ChibiOSYesGPL 3, APL 2, otherNoNo2.42.4NoYes
CMX-TINY+otherNoNoYesNoYesYes
ContikiYesBSDNoNoNoNoNoYes
embOSYesotherNoYesNoNoYesYes
Erika EnterpriseYesGPL 2 + LENoNoNoNoNoYes
FreeRTOSYesMITNoNoNoNoNoYes
IntrOSYesGPL 3YesNoYesNoNoYes
µC/OSYesotherNoNoNoNoNoYes
µKOS-IIIYesGPL 3PlannedNoNoNoNoYes
mipOSYesMITYesNoYesYesYesYes
nOSYesMPL 2NoYesNoNoNoYes
NuttXYesBSDNoNoNoNoNoYes
Nut/OSYesBSDNoNoNoNoNoYes
OSANoBSDNoYesYesYesNoNo
RIOTYesLGPLNoNoNoNoNoYes
RTA-OSEKotherNoNoNoNoYesNo
scmRTOSYesMITNo (req. C++ ss.)YesNo (req. C++ ss.)No (req. C++ ss.)NoYes
StateOSYesGPL 3YesNoYesNoNoYes
TrampolineYesGPL 2NoNoNoNoNoYes
ZephyrYesApache 2NoNoNoNoNoYes

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.