modm: Modular Object-Oriented Development for Microcontrollers

modm (Modular Object-oriented Development for Microcontrollers) is a C++14 framework built by Niklas Hauser and Fabian Greif. The modm project uses vendor-provided chip data with a library builder, enabling modm to automatically generate startup code, chip-specific drivers, external drivers, and BSPs for your platform. Since modm provides a portable HAL, you can easily migrate your …

foonathan/memory: Simplifying the C++ Memory Allocator

The memory library is developed by Jonathan Müller, a C++ library developer and author of foonathan::blog(). This library provides an new STL-compatible C++ memory allocator called RawAllocator. The RawAllocator is similar to the standard Allocator but is easier to use. The library also provides a BlockAllocator type which can be used for allocating large blocks …

June 2018: C++ Standard Proposals for Rapperswil Meeting

4 June 2018 by Phillip Johnston Last updated 28 September 2019 Welcome to the June 2018 edition of the Embedded Artistry Newsletter! This is a monthly newsletter of curated and original content to help you build superior embedded systems. This newsletter is intended to supplement the website and covers topics not mentioned there. This month we’ll cover 5 C++ language proposals that will impact embedded developers. C++ Standardization Meeting in Rapperswil Today marks the start of the C++ standardization committee meeting in Rapperswil, Switzerland. Developers from around the world will meet and work on the future of the C++ language. …

To access this content, you must purchase a Membership - check out the different options here. If you're a member, log in.

CheckedC: A Language Extension to Help Eliminate Memory Errors

Checked C is a research project from Microsoft which adds static and dynamic (runtime) checking for errors such as buffer overruns, out-of-bounds memory accesses, and incorrect type casts. The project is implemented as an extension to the C language. New pointer and array types are provided with the goal of allowing programmers to better describe …

Improve Type Safety in Your C++ Program With the type_safe Library

The type_safe library is developed by Jonathan Müller, a C++ library and author of foonathan::blog(). The type_safe library provides zero-overhead utilities to help catch bugs at compile time. Features provided by the type_safe library include improved built-in types (ts::integer, ts::floating_point, and ts::boolean) which prevent dangerous implicit operations like signed-to-unsigned promotion. The library also provides "vocabulary" …

SaferC++ Provides Safer Native Type Implementations

The SaferC++ library provides safer implementations for many native C++ types. The library provides features such as: Data types that are designed for multi-threaded use and asynchronous access Drop-in replacements for std::vector, std::array, std::string, std::string_view that provide improved memory safety Drop-in replacements for int, size_t, and bool that protect against use of uninitialized values and …

May 2018: C++ Embedded Frameworks

7 May 2018 by Phillip Johnston • Last updated 27 September 2019 Welcome to the May 2018 edition of the Embedded Artistry Newsletter! This is a monthly newsletter of curated and original content to help you build superior embedded systems. This newsletter is intended to supplement the website and covers topics not mentioned there. This month we’ll cover: Four open-source C++ embedded frameworks that can jump-start your next project:KvasirmodmcrectEMB2Interesting links from around the webEmbedded Artistry website updates and popular posts Open-Source Embedded Frameworks In last month’s newsletter we recommended quality C and C++ libraries to give your next project a …

To access this content, you must purchase a Membership - check out the different options here. If you're a member, log in.

Protothreads: a Lightweight Threading Solution for Resource-constrained Systems

The protothreads library provides a lightweight, stackless threading solution targeted for resource-constrained embedded systems. Protothreads provides an event-driven system with a blocking context, without the overhead of per-thread stacks. And I'm serious when I say "lightweight": each protothread requires only 2 bytes of memory! The library is implemented in pure C and can be used …