Giter Club home page Giter Club logo

usync's Introduction

Usync

A Rust future runtime for bare-metal no_std devices.

Rust Workflow

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>

usync's People

Contributors

bahildebrand avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

usync's Issues

RISC-V Support

Add RISC-V support to the project. Will need to make the timer/sleep implementation generic.

Create Proc-macros

Create procedural macros to allow for easier configuration of a main function. Right now this depends on the cortex-m rt to set up a project initially, so this is blocking risc-v support.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.