NilaiTFO
stm32-hal
NilaiTFO | stm32-hal | |
---|---|---|
1 | 7 | |
20 | 141 | |
- | - | |
0.0 | 8.7 | |
2 months ago | 2 months ago | |
C++ | Rust | |
GNU General Public License v3.0 only | 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.
NilaiTFO
-
What are your recommended repositories to learn embedded systems from? You can share your own repository!
I made a C++17 library for STM32 to wrap around the HAL and provides an application structure: https://github.com/smartel99/NilaiTFO
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?
awesome-embedded-rust - Curated list of resources for Embedded and Low-level development in the Rust programming language
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
baremetal
generic_embedded - generic embedded stuff used throughout hobby projs
mspenv - a dev env to build, flash, and debug msp430 firmware without an IDE
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
esp-idf-hal - embedded-hal implementation for Rust on ESP32 and ESP-IDF
embedded-hal - A Hardware Abstraction Layer (HAL) for embedded systems