The Embedded Working Group Newsletter - 21
2019-11-30This is the 21st newsletter of the Embedded WG where we highlight new progress, celebrate cool projects, thank the community, and advertise projects that need help!
Discuss on #rust-embedded:matrix.org, users.rust-lang.org, on twitter, or on reddit!
If you want to mention something in the next newsletter, send us a pull request!
Highlights
- Don't forget to join our Community Chat on Matrix, with more than 250 Embedded Rustaceans!
- @andre-richter added two new tutorials for the
Operating System development tutorials in Rust on the Raspberry Pi
series:- Tutorial 11: Virtual Memory
- Tutorial 12: CPU Exceptions: Part 1
- @jamesmunns streamed some work on developing interrupt and panic code on youtube
Embedded Projects
- @eldruin released a platform-agnostic driver for the OPT300x family of ambient light sensors and published a blog post with a picture of the device taking lux measurements.
- @mciantyre published a custom runtime and peripheral access crates to support development on the Teensy 4. Check out the repo to see how it works, discuss the approach, and try it out.
- @japaric released version v0.1.0 of
ufmt
, a smaller (6-40x) and faster (2-9x) alternative tocore::fmt
that's free of dynamic dispatch, recursion (where possible) and panicking branches.ufmt
is not a drop-in replacement forcore::fmt
but it providesuDebug
anduDisplay
traits and a family ofuwrite!
macros. In this release theuwrite!
macros, and the rest of the crate, work on the stable channel. - @jamesmunns released two embedded crates:
panic-persist
: A panic handler crate inspired bypanic-ramdump
that logs panic messages to a region of RAM defined by the user, allowing for discovery of panic messages post-mortem using normal program control flow.cmim
, or Cortex-M Interrupt Move: A crate for Cortex-M devices to move data to interrupt context, without needing a critical section to access the data within an interrupt, and to remove the need for the "mutex dance"
- @tarcieri released
aead
v0.2, providing generic traits for Authenticated Encryption with Associated Data (AEAD) ciphers, which now supports ergonomicalloc
-free operation via an integration with theheapless
crate. This trait is now implemented by several crates providing pure Rust implementations of AEAD modes which may be interesting to embedded users seeking to encrypt/data data inheapless
buffers, including thechacha20poly1305
andaes-siv
crates (and forthcoming support in theaes-ccm
crate).
If you have an embedded project or blog post you would like to have featured in the Embedded WG Newsletter, make sure to add it to the next newsletter, we would love to show it off!
embedded-hal
Ecosystem Crates
As part of the Weekly Driver Initiative, crates that are part of the embedded-hal
ecosystem are now tracked in the Awesome Embedded Rust repository. Here is a current snapshot of what is available there:
Type | Status | Count | Diff |
---|---|---|---|
Peripheral Access Crates | released | 32 | +1 |
HAL Impl Crates | released | 29 | +1 |
Board Support Crates | released | 19 | 0 |
Driver Crates Released | released | 30 | +1 |
Driver Crates WIP | WIP | 69 | -1 |
no-std crates | released | 30 | +2 |
no-std crates WIP | WIP | 3 | 0 |