amp-embedded-infra-lib
satcat5
amp-embedded-infra-lib | satcat5 | |
---|---|---|
17 | 25 | |
152 | 390 | |
2.6% | 10.5% | |
9.3 | 3.8 | |
5 days ago | 2 months ago | |
C++ | VHDL | |
MIT License | CERN Open Hardware Licence Version 2 - Weakly Reciprocal |
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
satcat5
-
Layout of Rust's u128 and i128 changed
I needed 128-bit and 256-bit integers on an embedded project recently.
In short, it was for fixed-point digital signal processing. The raw input and output samples were int64_t. We needed to add, subtract, multiply, and accumulate these to do filtering and linear regression with no loss of precision.
Conventional bigintegers weren't an option because the target application doesn't allow heap allocation. So we rolled our own [1] stack-allocated, fixed-width big integer class.
[1] https://github.com/the-aerospace-corporation/satcat5/blob/ma...
- Show HN: SatCat5, the open-source FPGA Ethernet switch
-
CRC32 algorithm match value between 96 bit wide data bus and 24 bit wide data bus
And here's an open-source implementation I wrote a few years back. You can skip the part at the end that handles variable-length trailing bytes, since you have a fixed-width input.
-
Questions about lattice ecp5 fpga.
My SatCat5 project also has a few options. Anything under src/vhdl/common/cfgbus_* can be connected to AXI or Wishbone with a simple adapter.
- SatCat5: FPGA gateware that implements a low-power, mixed-media Ethernet switch
-
GPSDO without VCXO?
For an all-digital solution, here's an NCO that generates an arbitrary-frequency square wave from a numeric counter.
- network switch
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.
verilog-ethernet - Verilog Ethernet components for FPGA implementation
etl - Embedded Template Library
SpinalHDL - Scala based HDL
IoT-For-Beginners - 12 Weeks, 24 Lessons, IoT for All!
surf - A huge VHDL library for FPGA development
HFSM2 - High-Performance Hierarchical Finite State Machine Framework
SBusFPGA - Stuff to put a FPGA in a SBus system (SPARCstation)
CubeCell-Helium-vindriktning-particle-sensor - Helium LoRaWAN data reporting via a Heltec Cubecell for the Ikea VINDRIKTNING PM2.5 air quality sensor
opentitan - OpenTitan: Open source silicon root of trust
compile-time-init-build - C++ library for composing modular firmware at compile-time.
chisel - Chisel: A Modern Hardware Design Language