baremetal
stm32-hal
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.
baremetal
-
Should I write my own HAL drivers?
You might find this repo interesting https://github.com/pellepl/baremetal
- What are your recommended repositories to learn embedded systems from? You can share your own repository!
stm32-hal
- The bane of my existence: Supporting both async and sync code in Rust
-
What the HAL? The Quest for Finding a Suitable Embedded Rust HAL
Typestate-free HALs: This is in exchange for better ergonomics as the author claims. Only two HALs fall in this category right now which are the STM32-HAL & nRF-HAL.
-
6 Things I Wish I Knew Starting with Embedded Rust
As I worked with the stm32, as implied earlier, the HALs that I worked with were ones built around embedded-hal traits. Nevertheless, I came across a HAL at a certain point that adopted a different approach that felt more practical and easy to understand. This was the stm32-hal stm32-hal that I found to be more wholesome as it incroporated multiple families of the STM32 under a single HAL umbrella (my original expectation). The STM32-hal eliminates much of the trait confusion that I had encountered before. The thing is the stm32-hal does not seem to be mainstream yet. From what I understand, the HALs built with the mebedded-hal as a basis seem to be the ones mainly adopted by the embedded working group. Additionally, I am not sure if the stm32-hal has any equivalent counterparts for other manufacturer devices.
-
STM32F4 Embedded Rust at the HAL: GPIO Button Controlled Blinking
📝 At the time of writing this post, it came to my attention that there is an additional HAL that targets STM32 device families (the stm32-hal). From what I figure, right now there seem to be two approaches for developing HALs. The first approach is trait driven so to speak where the embedded-hal is used as a foundation. The second approach is more application-driven and provides a high-level API that targets several families of a device. However, this exists only for the stm32 through the stm32-hal. Right now, the first approach is what I found to be more widespread as it covers different microcontrollers and what this post is based on.
- Rust on Espressif chips Q1 2022
-
Any frameworks in Rust for developing on SiFive / ST / NXP boards?
For STM32, check out the Peripheral Access Crates by the stm32-rs ream. For higher-level access, I wrote This HAL library for STM32. Works on most newer variants, and includes examples for specific peripherals, and simple applications.
- What are your recommended repositories to learn embedded systems from? You can share your own repository!
What are some alternatives?
mspenv - a dev env to build, flash, and debug msp430 firmware without an IDE
awesome-embedded-rust - Curated list of resources for Embedded and Low-level development in the Rust programming language
hwlib - C++ OO micro-controller library for close-to-the-hardware programming
C++ Middleware Writer - The repo contains library code to support messaging and serialization. There are also two programs in the repo that are needed to use the CMW.
stm32-rs - Embedded Rust device crates for STM32 microcontrollers
generic_embedded - generic embedded stuff used throughout hobby projs
cortex-m - Low level access to Cortex-M processors
led-controller - Software for PIC32MX330F064H LED (cube) controller. The controller can be used for driving 256 RGB LEDs with a color-depth of 8 bit.
probe-run - Run embedded programs just like native ones
NilaiTFO
esp-idf-hal - embedded-hal implementation for Rust on ESP32 and ESP-IDF