The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning. Learn more →
Top 7 C++ bare-metal Projects
-
mt32-pi
🎹🎶 A baremetal kernel that turns your Raspberry Pi 3 or later into a Roland MT-32 emulator and SoundFont synthesizer based on Circle, Munt, and FluidSynth.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
rpidmx512
Orange Pi DMX512 / RDM / MIDI / OSC / Art-Net / WS28xx / L6470 / Stepper / TLC59711 / PCA9685 / Servo / PWM / TCNet / SMPTE / RDMNet / LLRP / GD32 / GigaDevice / Raspberry Pi
-
BlueVGA
VGA library for STM32F103C (BluePill) that can manipulate a screen with 28x30 tiles with 8x8 pixels each, in a total resolution of 224x240 pixels with 8 colors using a very low footprint
-
mdrivlib
Embedded driver library using modern C++. Currently supports STM32MP1, STM32H7, STM32F7, STM32F4 and STM32F0
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
I have just seen https://github.com/dwhinham/mt32-pi but it doesn't seem as easy to play with and well-documented as the other software I've used.
Great work. I can recommend to take a look on source code repo for Real-Time C++ book (by Christopher Kormanyous) it contains some interesting examples and use cases. The book itself is also nice
Project mention: Anyone using the STM32MP1 ? (Dual ARM cores (A7 + M4), Linux, Ethernet, CAN, USB, DACs, ADCs...) FreeRTOS on the 2nd core ? | /r/embedded | 2023-06-162x A7 cores for running an OS (Linux, Android) or you can run bare metal code on them too. (https://github.com/4ms/stm32mp1-baremetal)
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.
C++ bare-metal related posts
- Something between Rpi and Rpi Pico?
- Attempting to learn MS-DOS; Here's my DOS Gaming Box!
- Roland MT-32 Emulation
- Sound canvas / tone generator
- Raspberry Pi in synths?
- My take on the MiniDexed - first synth-diy project completed
- I'm not sure where else to post this but I need a bit of help.
-
A note from our sponsor - WorkOS
workos.com | 29 Apr 2024
Index
What are some of the best open-source bare-metal projects in C++? This list will help you:
Project | Stars | |
---|---|---|
1 | mt32-pi | 1,165 |
2 | real-time-cpp | 538 |
3 | rpidmx512 | 377 |
4 | baremetal | 174 |
5 | stm32mp1-baremetal | 138 |
6 | BlueVGA | 55 |
7 | mdrivlib | 14 |
Sponsored