wg
embedded-hal
wg | embedded-hal | |
---|---|---|
12 | 11 | |
1,834 | 1,785 | |
1.1% | 2.1% | |
8.1 | 8.6 | |
4 days ago | 11 days ago | |
Rust | ||
- | 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.
wg
-
Embedded Rust Education: 2023 Reflections & 2024 Visions
Inspired by James Munns's call, and as 2023 is coming to an end, I figure it's a good opportunity to reflect and look forward to 2024. It's been a bit over 1.5 years since I embarked on my embedded Rust journey and it's been nothing less than exciting since. So here it goes.
-
In search of Rust projects to contribute
Because you are an embedded guy. There is the https://github.com/rust-embedded/wg working-group. Rust on embedded is really on a got track forward. There are many chips/vendors that are supported both in no std / std rust world, but still there is a lot of niche things where you can actively help to be the first to get it run in Rust.
-
Rust – Are We Game Yet?
To specifically answer your question, here:
* <http://www.areweembeddedyet.com/>
It currently redirects to:
* <https://rust-embedded.org>
Which doesn't really contain anything other than a link to <https://github.com/rust-embedded>.
(via <https://github.com/rust-embedded/wg/issues/15>)
-
Google announce secure Rust-based OS for embedded system
Then the Rust Embedded workgroup provides: - Direction on how to using generics and zero-sized types to achieve functional safety - svd2rust, which provides safe abstractions to peripheral access from SVD files and achieves this functional safety - The embedded HAL spec, which makes porting to different vendors/hardware easy - Peripheral access controllers and HALs for various vendors & hardware
-
What are your guys' thoughts on Rust?
The Rust Embedded Devices Working Group curates a list of useful embedded Rust resources, including Peripheral Access Crates (autogenerated from SVD files), embedded-hal Implementation Crates (hand-written libraries implementing the traits (interfaces) specified by the embedded-hal), and Board Support Crates.
-
Question about Rust's binary size
You should also look at https://github.com/rust-embedded/wg/issues/41 and https://github.com/rust-lang/rust/pull/55011#issuecomment-429336055.
-
Things you can’t do in Rust (and what to do instead)
Here's an interesting discussion, consolidated here. My view is you should use a restricted scope atomic (as best as can be supported) and interact with that through a handler struct. I.e. no global state.
- Semantic Versioning Will Not Save You
- Is there a embedded community/website where it is modern?
-
Would it be possible to run Rust on the new Raspberry Pi Pico?
Most of the issues are explained in EWG RFC 419. The TL;DR is that some resources need to implement Send to be usable from interrupts, but they must not be sent across cores.
embedded-hal
-
Announcing the new async-hal! Featuring embedded IO traits and new interrupt-based executor
What is the difference between this and https://github.com/rust-embedded/embedded-hal/tree/master/embedded-hal-async?
-
Introducing async-hal! A hardware abstraction layer for embedded devices with futures
Maybe worth mentioning if you (or someone else) hasn't seen it before, the embedded-wg is also working on an async version of the embedded-hal traits, embedded-hal-async.
-
Microsoft is rewriting core Windows libraries in Rust
In that case you want to keep most of the unsafe in the HAL crate, and expose an interface as safe as possible. To give you an idea, is it since 2018 that a "generic" DMA safe implementation is in discussion https://github.com/rust-embedded/embedded-hal/issues/37
-
Stop Comparing Rust to Old C++
Does something like embedded hal exist in the C/C++ world? ( https://github.com/rust-embedded/embedded-hal )
-
not entirely new to rust, but very new to rust+arduino,.... eli5 the differences between these projects?
worth mentioning also is embedded-hal but my understanding is this has absolutely nothing to do with arduino, so despite being embedded probably not what I want.
-
Google announce secure Rust-based OS for embedded system
The ecosystem is great and growing, It really benefits from a language-standard embedded HAL which makes writing cross-platform drivers a cinch - e.g., you can write a bit-banged MDIO driver and use it on anything that has a timer and a two IO pins, from a Zynq Ultrascale to an arduino. Sure, this is possible in C - but Rust really benefits from a less fragmented ecosystem here.
-
Want to volunteer for your projects
Have you thought about writing/contributing to embedded-hal compatible crates (a sensor module driver for example)? It's always good to contribute to an eco system.
-
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.
-
Why doesn’t V8 fit on my microcontroller?
I can write a library for an OLED device that is driven by an platform agnostic I2C device that will run on any microcontroller that implements the necessary abstractions.
The `embedded-hal` (https://github.com/rust-embedded/embedded-hal) are these abstractions that allow this to happen
-
Hands-On: The RISC-V ESP32-C3 Will Be Your New ESP8266
Yes but there needs to be appropriate libraries available such as HAL. Well it doesn't have to but it makes my life as a beginner in both much easier. But its probably matter of time because i predict that this chip will be very popular in Rust embedded.
What are some alternatives?
rust-semverver - Automatic checking for semantic versioning in library crates
quickjs-esp32 - QuickJS port for ESP32
pico-examples
microzig - Unified abstraction layer and HAL for several microcontrollers
flip-link - Adds zero-cost stack overflow protection to your embedded programs
bl602-hal - Hardware Abstract Layer for BL602 RISC-V WiFi + BLE SoC in embedded Rust
erdtree - A modern, cross-platform, multi-threaded, and general purpose filesystem and disk-usage utility that is aware of .gitignore and hidden file rules.
nesper - Program the ESP32 with Nim! Wrappers around ESP-IDF API's.
not-yet-awesome-embedded-rust - A collection of items that are not yet awesome in Embedded Rust
esp8266-quickjs - An attempt on getting QuickJS working on ESP8266 hardware
TX-2-simulator - Simulator for the pioneering TX-2 computer
embassy - Modern embedded framework, using Rust and async.