cppreg
nanopb
Our great sponsors
cppreg | nanopb | |
---|---|---|
5 | 19 | |
56 | 4,011 | |
- | 2.8% | |
0.0 | 8.2 | |
about 2 years ago | 1 day ago | |
C++ | C | |
GNU General Public License v3.0 or later | zlib License |
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.
cppreg
- Register Access
- How portable is ST's HAL API?
-
How many of you do you actually use C++ for device drivers?
Do you use CMSIS? We are using C++ for device drivers but dealing with CMSIS does not feel nice for testing and mocking and in general trying to get away from C practices. I saw Cppreg library and started feeling like CMSIS hurts the code more than it helps and rewriting the memory mappings with classes could be a lot more useful.
- Where is C++ used in Embedded Systems
nanopb
-
Embedded communication protocols doc gen
nanopb
-
Lightweight data serialization/deserialization format
Protocol buffers are designed for this. Consider using nanopb on the device side.
- How many of you do you actually use C++ for device drivers?
-
nanopb VS protobuf-c - a user suggested alternative
2 projects | 4 Feb 2022
-
nanopb VS EmbeddedProto - a user suggested alternative
2 projects | 14 Oct 2021
-
Efficient multi-language message packing / serialization for embedded applications. (stuff_sack)
You are on the right track regarding protobufs, FlatBuffers, and Cap'n Proto. They are targeted at server communication and/or RPC and have features (optional fields, variable length arrays, etc) that stuff_sack does not have. There is an implementation for protobufs called nanopb which is targeted at embedded devices and is a good option for application requiring those features. Without these features stuff_sack is generally faster in packing and unpacking. Whether or not the binaries are smaller actually depends on the number of messages defined, but for common use cases (<15 messages) they should be.
What are some alternatives?
protobuf-c - Protocol Buffers implementation in C
EmbeddedProto - Embedded Proto is a C++ Protocol Buffers implementation specifically suitable for microcontrollers. It is small, reliable and easy to use.
nanopb-example - This is a simple project created to test the capabilities of Google's protobuf C implementation, nanopb.
raylib - A simple and easy-to-use library to enjoy videogames programming
modern-embedded-programming-course - Companion repository to the "Modern Embedded Systems Programming" video course.
stuff_sack - Efficient multi-language message packing / serialization.
FPGA_Multimedia_Player - MSc Final Project
stm32plus - The C++ library for the STM32 F0, F100, F103, F107 and F4 microcontrollers
qpc - QP/C Real-Time Embedded Framework/RTOS for embedded systems based on active objects (actors) and hierarchical state machines
protoc-gen-doc - Documentation generator plugin for Google Protocol Buffers
sml - C++14 State Machine library
JSMN - Jsmn is a world fastest JSON parser/tokenizer. This is the official repo replacing the old one at Bitbucket