diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a6803dc2..a2147d36 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -50,6 +50,42 @@ jobs: - name: Test Rust code run: cargo test + bare-metal: + name: Build bare-metal Rust examples + runs-on: ubuntu-latest + strategy: + matrix: + include: + - directory: src/bare-metal/alloc-example + target: aarch64-unknown-none + - directory: src/bare-metal/aps/examples + target: aarch64-unknown-none + - directory: src/bare-metal/microcontrollers/examples + target: thumbv7em-none-eabihf + - directory: src/exercises/bare-metal/compass + target: thumbv7em-none-eabihf + - directory: src/exercises/bare-metal/rtc + target: aarch64-unknown-none + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Setup Rust cache + uses: ./.github/workflows/setup-rust-cache + + - name: Install dependencies + run: sudo apt update && sudo apt install gcc-aarch64-linux-gnu + + - name: Install toolchain + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + target: ${{ matrix.target }} + + - name: Build Rust code + working-directory: ${{ matrix.directory }} + run: cargo build + i18n-helpers: runs-on: ubuntu-latest steps: diff --git a/src/welcome-bare-metal.md b/src/welcome-bare-metal.md index 156ce1e3..105b9cc0 100644 --- a/src/welcome-bare-metal.md +++ b/src/welcome-bare-metal.md @@ -20,9 +20,9 @@ an on-board SWD debugger. To get started, install some tools we'll need later. On gLinux or Debian: ```bash -sudo apt install gdb-multiarch libudev-dev picocom qemu-system-arm +sudo apt install aarch64-linux-gnu-gcc gdb-multiarch libudev-dev picocom qemu-system-arm rustup update -rustup target add thumbv7em-none-eabihf aarch64-unknown-none +rustup target add aarch64-unknown-none thumbv7em-none-eabihf cargo install cargo-binutils cargo-embed ``` @@ -38,8 +38,8 @@ On MacOS: ```bash xcode-select --install -brew install picocom qemu gdb +brew install gdb picocom qemu rustup update -rustup target add thumbv7em-none-eabihf aarch64-unknown-none +rustup target add aarch64-unknown-none thumbv7em-none-eabihf cargo install cargo-binutils cargo-embed ```