Usync
A Rust future runtime for bare-metal no_std devices.
Development
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.
Prerequisites
Nightly Compiler
Usync uses several experimental features, and thus requires the nightly compiler. To switch to nightly run the following command:
rustup default nightly
Cortex-M4F Target
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(Optional)
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(Optional)
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
Running Examples
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>
Running Integration Tests
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>