Skip to content

Latest commit

 

History

History
81 lines (65 loc) · 4.51 KB

README.md

File metadata and controls

81 lines (65 loc) · 4.51 KB

Undergraduate Teaching Platform: A Prototype 👷

Build Status License: MPL-2.0

codecov

🚧 🚧 This is very much not stable yet! 🚧 🚧

This repo houses the 'core' of the UTP platform which consists of these pieces:

<TODO: diagram>

At the moment, the primary 'users' of the platform are the following:

  • An implementation of the platform for the TI Launchpad.
  • A TUI that can interact with any UTP LC-3 simulator.
  • A device support crate.
    • This contains macros and pieces that aid in implementing the peripheral traits and running the simulator on devices with embedded-hal support. This includes:
      • the uart transport layer
      • the #![no_std] compatible encoding layer (based on postcard)
      • (eventually (TODO)) the macros that, provided with embedded-hal compliant pins, provides you with peripheral trait impls
      • miscellaneous things necessary for the above like a simple FIFO
    • Lives in the lc3-device-support crate.
    • TODO: move out of this repo!

For Developers

TODO: fill in

To check that the project will build:

  • cargo c or cargo check-all

To actually build the project:

  • cargo b or cargo build-all to build everything
  • cargo build -p <crate name> to build a particular crate
    • i.e. cargo build -p lc3-isa

To run the project's tests:

  • cargo t or cargo test-all to run all the tests
  • cargo test -p <crate name> to run a particular crate's tests

To run the project's benchmarks:

  • cargo bench to run them all
  • cargo bench --bench <benchmark name> to run a particular benchmark

To build the docs for the project:

  • cargo +nightly docs (cargo-nightly docs if using nix)
    • NOTE: this requires a nightly Rust toolchain!
    • If you're on stable you can instead run: cargo d (or cargo docs-stable) to get mostly identical output

To run the project's lints (that CI runs):

  • cargo lint

TODO:

  • crate and doc badges on each crate
  • doc badge to gh pages on the top level README (this file)
  • CI:
    • release (on tag)
    • docs (upload to gh-pages)
    • coverage (still want codecov over coveralls but may acquiesce)