A Rust future runtime for bare-metal no_std devices.
The following section will help set up your development environment. All examples in this repo were developed with the STM32F4DISCOVERY board, so the instructions are focused on that setup. Note that this library can currently run on any Cortex-M based MCU, but has not been extensively tested in those environments.
Usync uses several experimental features, and thus requires the nightly compiler. To switch to nightly run the following command:
rustup default nightly
Since all examples for this project are targeting the STM32F407, we need to install the Cortex-M4F. To add the target run the following command:
rustup target add thumbv7em-none-eabihf
Renode is an open source MCU emulator. All examples in this library can run in Renode. You only need to install this dependency if you plan to run an emulated example. Downloads can be found here.
cargo-make is a workflow manager for cargo. It is used to provide a single command to build and launch examples in Renode. To install run the following command:
cargo install --force cargo-make
All examples can be built normally and executed in target with your choice of debugger. To quickly run an example in renode run the following command:
cargo make --makefile renode.toml run <example_name>
Integration tests are all written in the Robot Framework, and can be run with the following command
cargo make --makefile renode.toml test <test-name>