A sandbox with some basic examples created to help wrap my head around what using Rust for embedded development looks like and keep a running list of helpful resources.
There's only a tiny bit new here beyond what's already in the linked embedded tutorials or the examples available in the linked crates, but maybe the links down below are useful to someone 🤷🏽♂
I'm using an STM32 Nucleo-64 dev board I had laying around that's based around an STM32F401RE. Some specs:
- 84MHz ARM Cortex M4 with floating point instructions
- 512K Flash, 96K SRAM
- Built-in ST-LINK debugger/programmer
- An LED and a button
- Lots of exposed pins
Let's push this board to the edge by blinking some LEDs 🔥
Check out the examples folder for some ugly implementations.
- Follow the Rust embedded discovery book
- blinky
- Hello world via ITM
- UART echo server
- blinky with hardware timer-based busy-waits
- blinky using timer interrupts
- UART echo server using interrupts
- RTIC-based UART echo server
- Draw some things on an SH1106 OLED display with the embedded_graphics crate and the sh1106 driver crate.
- Figure out DMA
- ???
- 🚀
Just for fun
This repository is licensed under the MIT license
This repository was originally generated from the cortex-m-quickstart template.
- awesome-embedded-rust ⭐⭐⭐
- Embedded Rust docs, which includes the discovery tutorial
- cortex-m-quickstart template project. This sandbox repository was originally generated from this template.
- NUCLEO-F401RE documentation
- STM32F401 reference manual
- stm32-rs
- The embedonomicon: some advanced topics