Tuna-i3-Plus
mdrivlib
Our great sponsors
Tuna-i3-Plus | mdrivlib | |
---|---|---|
5 | 1 | |
2 | 14 | |
- | - | |
10.0 | 8.3 | |
about 6 years ago | 17 days ago | |
C++ | C++ | |
GNU General Public License v3.0 only | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Tuna-i3-Plus
- C++20 for bare-metal microcontroller programming
- How to check if a pointer is in a range of memory - The Old New Thing
- CTO of Azure declares C++ "deprecated"
-
IRS still running on COBOL and Windows XP. Alarming read on the current state of the US revenue system
Other than the fact that 1, 2, and 3 are perfectly representable as integers in IEEE-754, there are a number of languages that have fixed-point types, C and C++ offer specific forms as compiler extensions, and it really isn't hard to implement in C++ using a templated class (though you get better ABI semantics for it in Clang with [[trivial_abi]]). Here's a crude implementation in C++17 for AVR, complete with mismatched tabs/spaces.
-
cbi - compile-time bounded integers
I did some similar things with my old libtuna for AVR, mainly with intsz and with how fixed-point values are handled.
mdrivlib
-
C++20 for bare-metal microcontroller programming
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.
What are some alternatives?
metal-cpp - Metal-cpp is a low-overhead C++ interface for Metal that helps developers add Metal functionality to graphics apps, games, and game engines that are written in C++.
Aurora-SDK - SDK for Qu-Bit Aurora - Eurorack Reverb Platform
cbi - compile time bounded integers
Kvasir - C++ Metaprogramming library enabling better static checking and register abstraction in embedded software
Killed by Google - Part guillotine, part graveyard for Google's doomed apps, services, and hardware.
msp432-cpp - MSP432 Buildsystem without any standard-libs written completely in C++ 20
stm32mp1-baremetal - Baremetal framework and example projects for the STM32MP15x Cortex-A7 based MPU
Apollo-11 - Original Apollo 11 Guidance Computer (AGC) source code for the command and lunar modules.
baremetal - ARM Cortex-M bare-metal example code in C++ and CMake build
crates.io - The Rust package registry