diff options
Diffstat (limited to 'examples/esp32c3')
| -rw-r--r-- | examples/esp32c3/.cargo/config.toml | 6 | ||||
| -rwxr-xr-x | examples/esp32c3/runner.sh | 29 |
2 files changed, 34 insertions, 1 deletions
diff --git a/examples/esp32c3/.cargo/config.toml b/examples/esp32c3/.cargo/config.toml index fb52d86..9ea4ecb 100644 --- a/examples/esp32c3/.cargo/config.toml +++ b/examples/esp32c3/.cargo/config.toml @@ -1,5 +1,9 @@ [target.riscv32imc-unknown-none-elf] -runner = "espflash flash --monitor" +# Real hardware +#runner = "espflash flash --monitor" + +# QEMU emulator +runner = "./runner.sh" [build] rustflags = [ diff --git a/examples/esp32c3/runner.sh b/examples/esp32c3/runner.sh new file mode 100755 index 0000000..8b61068 --- /dev/null +++ b/examples/esp32c3/runner.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +if [ $# -eq 0 ] + then + echo "No arguments supplied! Provide path to ELF as argument" +fi + +outputfilenamecargo=$1 +outputfilename="$outputfilenamecargo".bin + +logfile=qemu.log + +qemuexec=qemu-system-riscv32 + +# Building ESP32-C3 image +espflash save-image --chip esp32c3 --merge "$outputfilenamecargo" "$outputfilename" 1>&2 + +# Get stats +esptool.py image_info --version 2 "$outputfilename" 1>&2 + +# Run in QEMU +$qemuexec -nographic -monitor tcp:127.0.0.1:55555,server,nowait -icount 3 -machine esp32c3 -drive file="$outputfilename",if=mtd,format=raw -serial file:"$logfile" & + +# Let it run +sleep 3s + +# Kill QEMU nicely by sending 'q' (quit) over tcp +echo q | nc -N 127.0.0.1 55555 +cat "$logfile" |
