diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9a3f583..8e8ef70 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,8 +15,12 @@ jobs: - name: Install tools uses: taiki-e/install-action@v2 with: - tool: mdslides@0.3,mdbook@0.4,mdbook-mermaid@0.12 - + tool: mdbook@0.4,mdbook-mermaid@0.12 + + - name: Add mdslides + run: | + curl --proto '=https' --tlsv1.2 -LsSf https://github.com/ferrous-systems/mdslides/releases/download/v0.4.0/mdslides-installer.sh | sh + - name: Add Rust Targets run: | rustup target add thumbv7em-none-eabihf diff --git a/example-code/build.sh b/example-code/build.sh index 6c5698d..329ce3b 100755 --- a/example-code/build.sh +++ b/example-code/build.sh @@ -5,12 +5,15 @@ set -euo pipefail # Check the example code pushd ./native cargo build --all +cargo clean popd # And the C based example pushd native/ffi/use-rust-in-c make +make clean popd # And the nRF52 examples pushd ./nrf52/bsp_demo cargo build +cargo clean popd diff --git a/training-slides/src/SUMMARY.md b/training-slides/src/SUMMARY.md index dd37005..90180a9 100644 --- a/training-slides/src/SUMMARY.md +++ b/training-slides/src/SUMMARY.md @@ -53,36 +53,44 @@ Topics that go beyond [Applied Rust](#applied-rust). * [Testing](./testing.md) * [The stdlib](./std-lib-tour.md) * [Using Cargo](./using-cargo.md) -* [Using Types to encode State (TBC)](./type-state.md) +* [Using Types to encode State](./type-state.md) * [WASM](./wasm.md) # No-Std Rust Rust for the Linux Kernel and other no-std environments with an pre-existing C API. Requires [Applied Rust](#applied-rust). -* [Overview of no-std Rust (TBC)](./rust-no-std.md) * [Unsafe Rust](./unsafe.md) * [Foreign Function Interface](./ffi.md) * [Working with Nightly](./working-with-nighly.md) -* [Rust in the Linux Kernel (TBC)](./rust-linux-kernel.md) -* [Rust on an RTOS (TBC)](./rust-rtos.md) -* [Writing a new target (TBC)](./custom-target.md) + +## Under development + +* [Overview of no-std Rust]() +* [Rust in the Linux Kernel]() +* [Rust on an RTOS]() +* [Writing a new target]() # Bare-Metal Rust -Topics about using Rust on ARM Cortex-M Microcontrollers (and similar). Requires [Low-Level Rust](#low-level-rust). +Topics about using Rust on ARM Cortex-M Microcontrollers (and similar). Requires [Applied Rust](#applied-rust). * [Overview of Bare-Metal Rust](./rust-bare-metal.md) -* [Booting a Cortex-M Microcontroller (TBC)](./cortex-m-booting.md) -* [Exceptions and Interrupts on a Cortex-M Microcontroller (TBC)](./cortex-m-exceptions-interrupts.md) * [PACs and svd2rust](./pac-svd2rust.md) * [Writing Drivers](./writing-drivers.md) * [The Embedded HAL and its implementations](./embedded-hals.md) * [Board Support Crates](./board-support.md) -* [Using RTIC v1 (TBC)](./rtic-v1.md) + +## Under development + +* [Booting a Cortex-M Microcontroller]() +* [Exceptions and Interrupts on a Cortex-M Microcontroller]() +* [Using RTIC v1]() # Ferrocene Topics around [Ferrocene](https://ferrous-systems.com/ferrocene/), the qualified toolchain for writing safety-critical systems in Rust. -* [Installing and Using Ferrocene (TBC)](./installing-using-ferrocene.md) +## Under development + +* [Installing and Using Ferrocene]() diff --git a/training-slides/src/start_here.md b/training-slides/src/start_here.md index acc4b7a..166a381 100644 --- a/training-slides/src/start_here.md +++ b/training-slides/src/start_here.md @@ -4,7 +4,7 @@ Make sure to have `rustup`, `VSCode` and the `rust-analyzer` VSCode extension installed. -Our various Rust training courses fit together as follows: +Our various Rust training courses are planned to fit together as follows. Some of these courses are available now, and some are in development and will be available in the future. ```mermaid graph TD; @@ -12,11 +12,12 @@ graph TD; Applied-->Advanced(Advanced Rust); Applied-->NoStd(No-Std Rust); NoStd-->Ferrocene(Using Ferrocene); - NoStd-->BareMetal(Bare-Metal Rust); + Applied-->BareMetal(Bare-Metal Rust); Applied-->Async(Async Rust); BareMetal-->Embassy(Using Embassy); Async-->Embassy; - Why(Why Rust?); + WhyRust(Why Rust?); + WhyFerrocene(Why Ferrocene?); ``` * **Rust Fundamentals**: Covers the basics - types, writing functions, using iterators. @@ -28,4 +29,4 @@ graph TD; * **Bare-Metal Rust**: Rust on a micro-controller. * **Using Embassy**: Async-Rust on a micro-controller. * **Why Rust?**: A (stand-alone) half-day tour of Rust for decision-makers, technical leads and managers. - +* **Why Ferrocene?**: A (stand-alone) 90 minute tour of Ferrocene.