References
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