References

Last modified on Sat Jul 22 11:30:02 2023 UTC.   Improve this page

Standards and style

Embedded operating systems

Note: Since GNU/Linux derived embedded systems are intended for a different class of applications, they currently do not make the subject of this project.

Written in C++

  • eCos - The embedded configurable operating system by Cygnus Solutions (Wikipedia)
  • ScmRTOS - Single-Chip Microcontroller Real-Time Operating System
  • Miosix embedded OS - a kernel designed to run on 32bit microcontrollers; supports a priority-based scheduler, an innovative scheduler based on control theory which is the subject of academic research, and the EDF scheduler

Written in C

  • µC/OS-III - µC/OS-III is a highly portable, ROMable, scalable, preemptive, real-time, deterministic, multitasking kernel for microprocessors, microcontrollers and DSPs, by Micrium.
  • threadX - ThreadX has many advanced features, including its picokernel architecture, preemption-threshold scheduling, event-chaining, execution profiling, performance metrics, and system event tracing.
  • smx - smx is an advanced RTOS kernel, which offers unique features related to memory management.
  • FreeRTOS - is probably the most popular open source, cross platform, real time operating system, available from Real Time Engineers Ltd.
  • CMSIS with RTOS API - CMSIS 3.0 is expanded with a standardized API for Real-Time Operating System (RTOS) kernels and support for System View Description (SVD) XML files; Feabhas PDF
  • Contiki - The Open Source OS for the Internet of Things
  • TNKernel - a compact and very fast real-time kernel for the embedded 32/16/8 bits microprocessors inspired by the μITRON 4.0 specification
  • NuttX - the NuttX Real-Time Operating System with TCP/IP, USB and more
  • ChibiOS/RT - a complete, portable, open source, compact and extremely fast RTOS (German flavour)
  • TinyOS - an open source, BSD-licensed operating system designed for low-power wireless devices
  • RT-Thread - an open source real-time operating system for embedded devices
  • uKOS-II - RTOS µKernel
  • TI-RTOS - TI-RTOS: Real-Time Operating System, specifically SYS/BIOS POSIX Thread (pthread) Support.

Quantum Leaps (QP)

QP Active Object (Actor) Frameworks is a SourceForge project. The QP family consists of QP/C, QP/C++, and QP-nano frameworks, which are all strictly quality controlled, superbly documented, and commercially licensable. It is backed by Quantum Leaps LLC who also published a very good book Practical UML Statecharts in C/C++, Second Edition: Event-Driven Programming for Embedded Systems also available from Amazon.

C/C++ language & libraries

  • GNU Tools for ARM Embedded Processors - Pre-built GNU toolchain from ARM Cortex-M & Cortex-R processors (Cortex-M0/M0+/M3/M4, Cortex-R4/R5)
  • C++ reference - a wiki with lots of C++ language and libraries references
  • “libc++” C++ Standard Library - a LLVM sub-project, also available via ViewVC
  • libstdc++-v3 - The GNU Standard C++ Library v3, part of the GNU GCC
  • GNU Common C++ and GNU uCommon C++ - are both very portable and highly optimized class framework for writing C++ applications; stream classes are not included;
  • Apache C++ Standard Library (STDCXX) - also available via ViewVC
  • uClibc++ - an embedded C++ library, also available for Git browse; a good inspiration for embedded systems;
  • uSTL - the small STL library; a port of usTL 1.3 is also available on eCos; SourceForge, including Git browse
  • boost - portable C++ source libraries; all kind of libraries, interesting to look at, but sometimes quite complicated;
  • Platinum - Platinum (Pt) is a comprehensive C++ framework, which allows developers to write high-performance applications for many platforms with only one codebase.
  • Dinkum EC++ Library - a conforming implementation of the Embedded C++ library, as specified by the Embedded C++ Technical Committee.
  • Thumb2 Newlib Toolchain - a GCC/Newlib based toolchain project
  • libopencm3 - a free firmware library for various ARM Cortex-M3 microcontrollers including ST STM32, (a very elaborate doxygen configuration)
  • STM32plus - a C++ library for STM32
  • libstm32pp - A template peripheral library for the STM32 microcontrollers, written in C++
  • xpcc - C++ microcontroller framework; efficient enough to be deployed on a small ATtiny, yet powerful enough to make use of advanced capabilities found on the 32bit ARM Cortex-M
  • etlcpp - A C++ template library for embedded applications

TCP/IP libraries

  • lwIP - A Lightweight TCP/IP stack
  • uIP - The uIP Embedded TCP/IP Stack
  • UDP/IP - a Tiny Embedded UDP/IP Stack Implementation for FreeRTOS
  • Practical C++ Sockets - provides wrapper classes for a subset of the Berkeley C Socket API for TCP and UDP sockets project
  • C/C++ Sockets Library - The ultimate socket library for C and C++
  • Polar SSL - Straightforward, Secure Communication
  • CycloneTCP - TCP/IP Solutions for Embedded Systems

Testing

  • Jenkins - an extendable open source continuous integration server
  • JUnit - the common Java framework for unit testing
  • CppUnit - C++ port of JUnit
  • CppTest - a portable and powerful, yet simple, unit testing framework for handling automated tests in C++
  • xUnit++ - a unit testing platform for C++
  • Google Test - a great unit testing for C++
  • Google Mock - adds Hamcrest matchers and mocks

Miscellaneous

  • Doxygen - the de facto standard tool for generating documentation from annotated C++ sources

Hardware

Development boards

  • LeafLabs - a company that builds Maple, an ARM Cortex M3 board, programmed using an Arduino-like development environment.

Books