Read Rust

Embedded

Posts about using Rust on embedded systems. Including microcontrollers, IoT, and devices.

Posts

I decided to make an 1980's Home Computer in Rust - Part 1 by theJPster
My first attempt at Rust programming was the stellaris-launchpad crate. This has a few demos that either blink the LED or roll it through an RGB rainbow using the PWM timers. Recently I've started a new version of the lm4f120 crate called tm4c123x-hal. The name change reflects TI's new name for basically the exact same part, while the -hal indicates that it's based upon the output of svd2rust and @japaric's new Embedded Hal crate. At the same time, I was watching videos on Youtube about a new wave of 1980's style 'retro' computing boards - text output, BASIC interpreter, etc. An idea started to form that I could put all three of these things together.
Programming an ARM microcontroller in Rust at four different levels of abstraction by Pramode C.E
Covering: Why Rust on Microcontrollers, Level 1: Direct register access in an unsafe block, Level 2: No unsafe blocks, use the API provided by svd2rust, A problem, Level 3: The embedded HAL to the rescue, Level 4: Use a board support crate.
Weekly driver 1 & 2: L3GD20, LSM303DLHC and Madgwick - Embedded in Rust by Jorge Aparicio
Oh, time flies. It’s already week 8 and we have zero weekly driver posts out there – don’t worry though because there’s plenty of drivers and embedded-hal implementations in the works. To play catch up in this post I’ll cover two embedded-hal drivers: the l3gd20 and the lsm303dlhc. The L3GD20 is an IC that contains a gyroscope and exposes I2C and SPI interfaces; the LSM303DLHC is an IC that contains an accelerometer and a magnetometer, and exposes an I2C interface. You can find these two ICs on the STM32F3DISCOVERY board.
Zero cost stack overflow protection for ARM Cortex-M devices by Jorge Aparicio
One of the core features of Rust is memory safety. Whenever possible the compiler enforces memory safety at compile. One example of this is the borrow checker which prevents data races, iterator invalidation, pointer invalidation and other issues at compile time. Other memory problems like buffer overflows can’t be prevented at compile time. In those cases the compiler inserts runtime checks, bounds checks in this case, to enforce memory safety at runtime. What about stack overflows? For quite a long time Rust didn’t have stack overflow checking but that wasn’t much of a problem on tier 1 platforms since these platforms have an OS and a MMU (Memory Management Unit) that prevents stack overflows from wreaking havoc.
Memory safe DMA transfers - Embedded in Rust by Jorge Aparicio
A blog about Rust and embedded stuff
Experimenting with the New I/O Framework (in Rust) for embedded systems by Pramode C.E
Notes on Code, by Pramode C.E
Rust 2018: Improving Safety and Ergonomics for Low-Level Programming - Bobbin Blog by Jonathan Soo
There’s been a lot written about what can be done to make Rust’s tooling, libraries and infrastructure better for embedded programming, but I’d like to cover a slightly different topic: what can be done to make Rust the language itself safer and easier to use for low-level programming?
Rust 2018: Core, Embedded+SIMD, Intermesiate documenation, Async • r/rust by Nico
Hi there! I'm Nico, and I've been lurking around these parts for about a year now. I thought I'd give my 2 cents on Rust's 2018 plans. Note: this...
Embedded Rust in 2018 - Embedded in Rust by Jorge Aparicio
A blog about Rust and embedded stuff
Embedded Rust in 2018 by theJPster
I recently picked up an embedded project that I hadn't touched for a few months, so I could add some new features. I was disappointed to not...
Pollen Robotics call for #Rust2018: toward stability on embedded systems by Pierre Rouanet
Robotics developers face two main problems: