modm
amp-hal-st
Our great sponsors
modm | amp-hal-st | |
---|---|---|
5 | 7 | |
697 | 44 | |
2.3% | - | |
9.1 | 8.8 | |
6 days ago | about 10 hours ago | |
C++ | C | |
Mozilla Public License 2.0 | MIT 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.
modm
-
Looking for well written, modern C++ (17/20) example projects for microcontrollers
Have a look in the modm.
-
how come there aren't any open source drivers for MCUs?
Something like https://modm.io ?
-
C++ for embedded - low level applications
On my way i found modm.io which can generate a HAL for (a lot) STM32 controller. They use C++17 and have lots of examples for different controllers the STM32 F4 Disco examples show some applications.
- Modm: A C++20 library generator for AVR and ARM Cortex-M devices
amp-hal-st
-
Looking for well written, modern C++ (17/20) example projects for microcontrollers
I can recommend having a look at: - https://github.com/philips-software/amp-embedded-infra-lib (stl-like replacement and utility library including a HAL definition - https://github.com/philips-software/amp-hal-st (HAL implementation for STs based on EMiL HAL) - https://github.com/philips-software/amp-preview (a GUI library for STs based on above mentioned repo's)
-
Projects to Join
We want to add G0 and G4 support to https://github.com/philips-software/amp-hal-st you are more than welcome to try it out. We don't have a direct use for them (that is, you won't be working for free for Philips), but we see a lot of opportunities for these chip families to be used by other projects. The new C series night also be interesting for hobbyists (which is one of the reasons we open source this library).
- What is on your CI?
-
Anybody else slow and dumb with this embedded and coding stuff?? Hours of trying to set the correct bits in the correct order with little success!
Simple solution: use a global catch-all interrupt handler that asserts when the "to handle" interrupt had no handler assigned :-) like this one https://github.com/philips-software/amp-hal-st/blob/main/hal_st/cortex/InterruptCortex.cpp
-
Implementing callbacks using abstract classes in C++
If you want examples on how these HAL interfaces are implemented for a range of ST devices then you can take a look at https://github.com/philips-software/amp-hal-st
- Looking for modern CMake tutorials or good open spurce examples
-
Writing STM32 Startup script in C++
Using amp-hal-st (https://github.com/philips-software/amp-hal-st) as an example. The easiest way to do it is to call HAL_NVIC_SystemReset();
What are some alternatives?
EmbeddedProto - Embedded Proto is a C++ Protocol Buffers implementation specifically suitable for microcontrollers. It is small, reliable and easy to use.
amp-devcontainer - amp-devcontainer is a fully loaded devcontainer useable for (embedded) C++ or Rust development
libopencm3 - Open source ARM Cortex-M microcontroller library
compile-time-init-build - C++ library for composing modular firmware at compile-time.
deepC - vendor independent TinyML deep learning library, compiler and inference framework microcomputers and micro-controllers
cppreference-doc - C++ standard library reference
etl - Embedded Template Library
cmake-project-skeleton - Reusable project skeleton for embedded C & C++ projects using CMake.
threeboard - A fully-functional open source and open hardware mechanical USB computer keyboard with only three keys!
stm32-cube-cmake-vscode - STM32, VSCode and CMake detailed tutorial
platform_specific_components - Low-level components and hardware drivers for various Cyphal-related projects
cortex-m3-rtos - ARM Cortex-M3 Real-Time Operating System for educational purpose.