C++20 for bare-metal microcontroller programming

This page summarizes the projects mentioned and recommended in the original post on /r/cpp

Our great sponsors
  • SonarCloud - Analyze your C and C++ projects with just one click.
  • Mergify - Updating dependencies is time-consuming.
  • InfluxDB - Collect and Analyze Billions of Data Points in Real Time
  • msp432-cpp

    MSP432 Buildsystem without any standard-libs written completely in C++ 20

    Link to the repository: https://github.com/lebakassemmerl/msp432-cpp

  • Kvasir

    C++ Metaprogramming library enabling better static checking and register abstraction in embedded software

    You’re way ahead of me, but I wanted to mention that it reminded me of this: https://github.com/kvasir-io/Kvasir

  • SonarCloud

    Analyze your C and C++ projects with just one click.. SonarCloud, a cloud-based static analysis tool for your CI/CD workflows, offers a one-click automatic analysis of C and C++ projects hosted on GitHub. Zero configuration and free for open-source projects! Analyze free.

  • Tuna-i3-Plus

    This is a modified version of the Marlin 1.1.2 firmware for the WANHAO Duplicator i3 Plus 3d printer.

  • mdrivlib

    Embedded driver library using modern C++. Currently supports STM32MP1, STM32H7, STM32F7, STM32F4 and STM32F0

    Being able to mark a register RW vs RO vs WO and have the compiler check your access is great. Have you also considered the case where a register bit is cleared by writing a 1 to it (or to another register)? I've also implemented my own approach for a general register class (bits and pieces stolen from various other projects): https://github.com/4ms/mdrivlib/blob/main/drivers/register_access.hh I use types for registers, rather than structs, which lets me do RegisterSetClear to handle the case where different registers set and clear a bit.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts