From f5c3c8cea14cd942ed6b299771fe71ae37eb7b91 Mon Sep 17 00:00:00 2001 From: Bob McWhirter Date: Fri, 7 May 2021 11:19:01 -0400 Subject: [PATCH] Helper script to extract a single peripheral from a single or all boards, optionally with a peri-specific transform.yaml. --- extract.sh | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100755 extract.sh diff --git a/extract.sh b/extract.sh new file mode 100755 index 0000000..f2fc555 --- /dev/null +++ b/extract.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +echo "Usage: ./extract.sh all| " + +board=$1 +peri=$2 +mkdir -p regs/$peri + +cargo build --release --manifest-path ../../../svd2rust/Cargo.toml + +transform="transform.yaml" + +if [ -f "transform-$peri.yaml" ]; +then + transform="transform-$peri.yaml" +fi + +query="sources/svd"; + +if [ $board != "all" ]; +then + query="sources/svd/stm32$board*.svd" +fi + + +for f in `ls $query`; do + f=${f##*/} + f=${f#"stm32"} + f=${f%".svd"} + echo -n processing $f ... + RUST_LOG=info ../../../svd2rust/target/release/svd4rust extract-peripheral --svd sources/svd/stm32$f.svd --transform $transform --peripheral $peri > regs/$peri/$f.yaml 2> regs/$peri/$f.yaml.out + if [ $? -ne 0 ]; then + mv regs/$peri/$f.yaml.out regs/$peri/$f.err + rm regs/$peri/$f.yaml + echo FAIL + else + rm regs/$peri/$f.yaml.out + echo OK + fi +done