Rust on microcontrollers
- Minimal blinky
- Barebones blinky example i.e linker script to main
- Minimal buildsystem
- Initial cargo-make framework to have configurable build options i.e extending
cargo
- Initial cargo-make framework to have configurable build options i.e extending
- Minimal controller peripheral
- Use bindgen to transform
.c
architecture and chip files to.rs
- Create
l0
andl5
workspace layers - Add architecture, controller and startup files in
l0
- Use bindgen to transform
- Minimal Drivers
- Write GPIO and USART drivers for high level application usage
- Added
l2
,l3
andl4
workspace layers - Added bitflags utility library in
l2
via crates.io - Added driver interfaces, gpio, usart drivers in
l3
- Added led and button modules in
l4
- Minimal Interrupt
- Configure interrupts from high level application code
- Updated
l0
l2
,l3
andl4
workspace layers - Updated
l0
with user interrupt considerations - Added heapless library to
l2
- Added USART buffered traits to
l3
- Minimal Async Basic
- Forked from
Minimal Interrupt
- Configure Interrupts and main loop with rust cooperative async/await
- No executor/waker implementation. Just basic polling functionality
- Forked from
- ARM Cortex M4
TODO, Add more eventually
- STM32L475xx
- LPC4078xx
See CI/CD
- Windows
- Linux
- Mac
- Basic Async Rust
- Polling support
- Efficient Async Rust
- Waker support
- Interrupt support
- FreeRTOS
- Zephyr RTOS
- RTIC
- OpenOCD
- Semihosting
- Mockall
- Cargo
- Cargo Make
- Cargo features
- Conditional compiling for additional platforms
- Grcov
- Rust based code coverage
- Lcov
- Stable code coverage tool
- Codecov
- Web based code coverage
- Coveralls
- Web based code coverage
- Bindgen
- Use C in Rust
- CBindgen
- Use Rust in C
- Unit testing
- Clippy
- Linting
- Cargofmt
- Integrated in VSCode
- Documentation
- Continuous Integration
- Github Actions