#async #stm32 #cortex-m #arm

no-std async-stm32f1xx

Abstractions for asynchronous programming on the STM32F1xx family of microcontrollers

4 releases (2 breaking)

0.3.0 Dec 15, 2020
0.2.1 Jun 8, 2020
0.2.0 Jun 8, 2020
0.1.0 Jun 5, 2020

#2125 in Embedded development

MIT/Apache

21KB
314 lines

Continuous integration Version Documentation License

async-stm32f1xx

Abstractions for asynchronous programming on the STM32F1xx family of microcontrollers.

This project provides futures-rs-based abstractions for asynchronous programming with peripherals from stm32f1xx-hal. It started as an effort to port the examples from async-on-embedded to the Blue Pill (STM32F103C8T6) as part of a bachelor's thesis. The library is independent of any particular executor, but the examples use the async-embedded runtime.

Requirements

Your rustc needs to include rust-lang/rust#69033, so you need at least Rust nightly-2020-03-22 or Rust 1.44.

Your Rust toolchain needs to support the thumbv7m-none-eabi target:

$ rustup target add thumbv7m-none-eabi

Examples

Most of async-on-embedded's examples have been successfully ported to this project.

Requirements

Adjusting to your hardware

The memory region information included in this repository matches the Blue Pill (STM32F103C8T6). You may need to adjust it according to your hardware. For more information see cortex-m-quickstart.

Running

You can run the example via cargo:

$ cargo run --example <NAME> [--release]

License

This project is licensed under either of

at your option.

Contributing

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in async-stm32f1xx by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~19MB
~534K SLoC