amp-embedded-infra-lib
amp-hal-st
amp-embedded-infra-lib | amp-hal-st | |
---|---|---|
17 | 7 | |
157 | 46 | |
5.7% | - | |
9.3 | 8.8 | |
1 day ago | 4 days ago | |
C++ | C | |
MIT License | 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.
amp-embedded-infra-lib
- Semantic Version GitHub Action
-
Code coverage with clang and gcovr
Have a look here: https://github.com/philips-software/amp-embedded-infra-lib/blob/modern-cmake/cmake/emil_test_helpers.cmake where we use the EMIL_ENABLE_COVERAGE flag.
-
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)
- What is on your CI?
-
FreeRTOS-Cpp: C++17 header-only interface to the FreeRTOS kernel API
Not to downplay your work. But, we are in the process, almost finalised, tests and all of adding this kind of support as well. But then to allow freertos to work with c++'s native threading API. https://github.com/philips-software/amp-embedded-infra-lib/tree/feature/add-osal We have a thin wrapper, and during configuration you choose: None, native, freertos or zephyr.
-
What criteria do you use to choose super loop over RTOS
Everything that needs to do something is scheduled using a simple EventDispatcher.schedule(lambda) construction; adding the lambda to the event queue. If you want an example of such a system: https://github.com/philips-software/amp-embedded-infra-lib/blob/modern-cmake/infra/event/EventDispatcher.hpp
-
Looking for a GitHub repo which contains unit tests
You can have a look at https://github.com/philips-software/amp-embedded-infra-lib it is a library project. So not an actual embedded teacher. Although the library is aimed at embedded usage.
-
Implementing callbacks using abstract classes in C++
If you want a good example of a full library then take a look at https://github.com/philips-software/amp-embedded-infra-lib
-
USB HID Device Configuration using nanopb and gRPC
https://github.com/philips-software/amp-embedded-infra-lib had support for RPC over protobuf.
- Looking for modern CMake tutorials or good open spurce examples
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
etl - Embedded Template Library
compile-time-init-build - C++ library for composing modular firmware at compile-time.
IoT-For-Beginners - 12 Weeks, 24 Lessons, IoT for All!
cppreference-doc - C++ standard library reference
HFSM2 - High-Performance Hierarchical Finite State Machine Framework
cmake-project-skeleton - Reusable project skeleton for embedded C & C++ projects using CMake.
CubeCell-Helium-vindriktning-particle-sensor - Helium LoRaWAN data reporting via a Heltec Cubecell for the Ikea VINDRIKTNING PM2.5 air quality sensor
stm32-cube-cmake-vscode - STM32, VSCode and CMake detailed tutorial
cortex-m3-rtos - ARM Cortex-M3 Real-Time Operating System for educational purpose.