amp-hal-st
tinyusb
amp-hal-st | tinyusb | |
---|---|---|
7 | 48 | |
46 | 4,564 | |
- | - | |
8.8 | 9.8 | |
6 days ago | 6 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-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();
tinyusb
- An open source cross-platform USB stack for embedded system
-
Bluetooth to USB Audio bridge
Implementing the required USB host interface is another hurdle, but tinyusb seems to have sorted most of that out, except that UAC2 is implemented as a device while you need a host.
- So I started porting braids to the PI PICO and ended with a generative drum machine
-
USB CDC: Multiple Virtual COM Ports
Have a look at TinyUSB. It supports the STM32WB and demo programs for the Nucleo-WB55RG. It even offers an example for dual CDC ports, so very close to what you're looking for.
-
Looking for well written, modern C++ (17/20) example projects for microcontrollers
Second: Distrust, misunderstanding, and out of date opinions of C++ in embedded spaces. I often see "compatibilty" thrown around as a goal for using C and not C++, but for most modern embedded systems, C++ compilers exist and are (usually) well tuned. Arm is a shining example here*. C++ is more optimizable than C as the intent can be clearer to the compiler. C++ constexpr and templates are a godsend for embedded systems, and I used both heavily in my recent arduino and pico testing. I combined both of them for a really cool experimental USB interface descriptor builder that runs at compile time and avoids the need to count byte sizes, but I gave up on it when the maintainer said C only, despite the fact that C can't do that. I was similarly disappointed when the pico "C++" was C only, as there was no backwards compatibility necessary.
-
Pico + CH559 = USB Midi host?
I looked at this but the fork seems to have had a lot of problems from looking at the PR: https://github.com/hathach/tinyusb/pull/1219
-
Badger 2040: tiny kit ereader
I think a better solution might be to use a USB flash drive in the usbc port. Unfortunately micropython and circuitpython don't support this (yet), so you'd have to use c++ https://github.com/hathach/tinyusb
-
ESP32-S3 Update via USB?
It's possible to make the s3 be a mass storage device via TinyUSB. https://github.com/hathach/tinyusb/tree/master/examples/device/cdc_msc_freertos
- Microcontroller that can read voltage?
- how do emulate a keyboard over usb? wherever I look I only see libraries and tutorials on how to use the eps32 as a Bluetooth keyboard not a wired one
What are some alternatives?
amp-devcontainer - amp-devcontainer is a fully loaded devcontainer useable for, embedded, C++ or Rust development
esp32-s2-usb-host-cdc
compile-time-init-build - C++ library for composing modular firmware at compile-time.
libusb - A cross-platform library to access USB devices
cppreference-doc - C++ standard library reference
lufa - LUFA - the Lightweight USB Framework for AVRs.
cmake-project-skeleton - Reusable project skeleton for embedded C & C++ projects using CMake.
hid-remapper - USB input remapping dongle
stm32-cube-cmake-vscode - STM32, VSCode and CMake detailed tutorial
rt-thread - RT-Thread is an open source IoT real-time operating system (RTOS).
cortex-m3-rtos - ARM Cortex-M3 Real-Time Operating System for educational purpose.
Adafruit_TinyUSB_Arduino - Arduino library for TinyUSB