diff --git a/hashes/embedded/README.md b/hashes/embedded/README.md new file mode 100644 index 00000000..60e4e1a1 --- /dev/null +++ b/hashes/embedded/README.md @@ -0,0 +1,30 @@ +# Running + +To run the embedded test, first prepare your environment: + +```shell +sudo ./scripts/install-deps +rustup +nightly target add thumbv7m-none-eabi +``` + +Then: + +```shell +source ./scripts/env.sh && cargo +nightly run --target thumbv7m-none-eabi +``` + +Output should be something like: + +```text +hash:ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad hash_check:ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad +hash:ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad hash_check:ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad +``` + +## Cleanup + +After sourcing `scripts/env.sh` and _before_ building again using another target +you'll want to unset `RUSTFLAGS` otherwise you'll get linker errors. + +```shell +unset RUSTFLAGS +``` diff --git a/hashes/embedded/scripts/env.sh b/hashes/embedded/scripts/env.sh new file mode 100644 index 00000000..125162b6 --- /dev/null +++ b/hashes/embedded/scripts/env.sh @@ -0,0 +1,2 @@ +export RUSTFLAGS="-C link-arg=-Tlink.x" +export CARGO_TARGET_THUMBV7M_NONE_EABI_RUNNER="qemu-system-arm -cpu cortex-m3 -machine mps2-an385 -nographic -semihosting-config enable=on,target=native -kernel" diff --git a/hashes/embedded/scripts/install-deps b/hashes/embedded/scripts/install-deps new file mode 100755 index 00000000..d22806dd --- /dev/null +++ b/hashes/embedded/scripts/install-deps @@ -0,0 +1,3 @@ +#!/bin/sh + +apt install gcc-arm-none-eabi qemu-system-arm gdb-multiarch