ut-utp / core

Mozilla Public License 2.0
1 stars 0 forks source link

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:

At the moment, the primary 'users' of the platform are the following: - An implementation of the platform for the TI Launchpad. + Lives in the [`lc3-tm4c` crate](//github.com/ut-utp/tm4c). - A TUI that can interact with any UTP LC-3 simulator. + Lives in the [`lc3-tui` crate](//github.com/ut-utp/tui). + Works with instances of [the simulator](baseline-sim) as well as actual devices like the [TM4C](//github.com/ut-utp/tm4c). - 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](https://docs.rs/embedded-hal/) support. This includes: * the uart transport layer * the `#![no_std]` compatible encoding layer (based on [`postcard`](https://github.com/jamesmunns/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](device-support). + 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 ` 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 ` to run a particular crate's tests To run the project's benchmarks: - `cargo bench` to run them all - `cargo bench --bench ` 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)