diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..9da7dfd --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,65 @@ +name: ci +on: [push, pull_request] + +jobs: + check: + name: Check build + strategy: + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - run: cargo check --release + + msrv: + name: Check MSRV + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@1.85.1 + - run: cargo build + + cross-check: + name: Check Cross-Compilation + runs-on: ubuntu-latest + strategy: + matrix: + target: + - armv7-unknown-linux-gnueabihf + - armv7a-none-eabi + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + with: + targets: "armv7-unknown-linux-gnueabihf, armv7a-none-eabi" + - run: cargo check --release --target=${{matrix.target}} --no-default-features + + fmt: + name: Check formatting + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + with: + components: rustfmt + - run: cargo fmt --all -- --check + + docs: + name: Check Documentation Build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@nightly + - run: RUSTDOCFLAGS="--cfg docsrs -Z unstable-options --generate-link-to-definition" cargo +nightly doc --all-features --no-deps + + clippy: + name: Clippy + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + with: + components: clippy + - run: cargo clippy -- -D warnings diff --git a/Cargo.toml b/Cargo.toml index e4fdd27..23f4443 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,6 +3,7 @@ name = "axi-uartlite" version = "0.1.0" description = "LogiCORE AXI UART Lite v2.0 driver" author = ["Robin Mueller "] +rust-version = "1.85.1" edition = "2024" license = "MIT OR Apache-2.0" diff --git a/README.md b/README.md index 55733c6..56c4bb1 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,12 @@ AXI UARTLITE driver ======== -This is a native Rust driver for the AMD AXI UART Lite v2.0 IP core. +This is a native Rust driver for the +[AMD AXI UART Lite v2.0 IP core](https://www.amd.com/en/products/adaptive-socs-and-fpgas/intellectual-property/axi_uartlite.html). # Core features -- Basic driver which can be created with a given IP core base address and supports as basic +- Basic driver which can be created with a given IP core base address and supports a basic byte-level read and write API. - Support for [`embedded-io`](https://docs.rs/embedded-io/latest/embedded_io/) and [`embedded-io-async`](https://docs.rs/embedded-io-async/latest/embedded_io_async/)