stm32-hal
probe-run
stm32-hal | probe-run | |
---|---|---|
7 | 6 | |
141 | 646 | |
- | - | |
8.7 | 0.0 | |
2 months ago | 3 months ago | |
Rust | Rust | |
MIT License | Apache License 2.0 |
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.
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!
probe-run
-
blink sketch for stm32f411?
Install probe-run (this is optional, but makes flashing easier)
-
This Year in Embedded Rust: 2021 Edition
This made me want to try getting some of these tools running. Probe run looked so handy, but it just doesn't work for me.
-
Any frameworks in Rust for developing on SiFive / ST / NXP boards?
For flashing, Check out Kurling's Probe-run, and related tools like defmt, as well as their app template.
- Writing embedded firmware using Rust
-
Rust community should go all in on supporting Raspberry Pi RP2040 Microcontrollers
You don't need a USB file system for a convenient dev experience. In fact you can achieve an even more integrated experience with Rust today, on essentially any Cortex-M microcontroller if you set up probe-run. It makes cargo run flash and run the code on your microcontroller and can even be invoked with rust-analyzer's run button or an IDE command.
-
How can I use probe-run and still debug application
I've been looking for a way to debug my application like I would from GDB (ie: set breakpoints, inspect registers, step, etc.) but I haven't found any documentation on how to accomplish this with probe-run.
What are some alternatives?
awesome-embedded-rust - Curated list of resources for Embedded and Low-level development in the Rust programming language
cargo-embed - a cargo extension for working with microcontrollers
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.
defmt - Efficient, deferred formatting for logging on embedded systems
stm32-rs - Embedded Rust device crates for STM32 microcontrollers
baremetal
stm32f7xx-hal - A Rust embedded-hal HAL for all MCUs in the STM32 F7 family
generic_embedded - generic embedded stuff used throughout hobby projs
svd2nim - Convert CMSIS ARM SVD files to nim register memory mappings
mspenv - a dev env to build, flash, and debug msp430 firmware without an IDE
rust-raspberrypi-OS-tutorials - :books: Learn to write an embedded OS in Rust :crab: