References
“Perfekt ist nicht gut genug”
>>> DEPRECATED PAGE >>> Please see new site >>>
Contents
Standards and style
- IEEE Std 830-1998: IEEE Recommended Practice for Software Requirements Specifications, published in 1998
- MISRA C++:2008 Guidelines for the use of the C++ language in critical systems, by Motor Industry Software Reliability Association, published in 2008
- Joint Strike Fighter Air Vehicle C++ Coding Standards, Lockheed Martin Corporation Doc. No. 2RDU00001 Rev D, dated June 2007
- ISO/IEC 14882:2011 Information technology — Programming languages — C++
- C++11 - the new ISO C++ standard - by Bjarne Stroustrup; although not really a standard, it reflects Stroustrup's thoughts about the standard, and it is also a great collection of links and references.
- Technical Report on C++ Performance - ISO/IEC TR 18015:2006(E)
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.
- 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; Hitex 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
- CooCox CoOS - an embedded real-time multi-task OS specially for ARM Cortex M series
- 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
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.
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
- C++ FAQ - 40 sections with C++ topics
- "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, also available via ViewVC
- 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++
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
- Socket++ - an old academic project
- C++ Sockets Library - a C++ class library wrapping the Berkeley sockets C API, with SSL support, IPv6 support, tcp and udp sockets, sctp sockets, http protocol, highly customizable error handling
- Polar SSL - Straighforward, 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
- Python 3 threading - thread-based parallelism
- Semaphores and other Wait-and-Signal mechanisms - a PDF presentation
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
- The C++ Standard Library - A Tutorial and Reference, 2nd Edition - The Best-Selling Programmer Resource - Now Updated for C++11
- Practical UML Statecharts in C/C++, Second Edition: Event-Driven Programming for Embedded Systems also available from Amazon