Merge pull request #1 from bobmcwhirter/toolchain

Toolchain
This commit is contained in:
Dario Nieuwenhuis 2021-04-23 20:51:21 +02:00 committed by GitHub
commit 1ccd312e26
4 changed files with 74 additions and 4 deletions

39
Makefile Normal file
View File

@ -0,0 +1,39 @@
SHELL=/bin/bash
clean:
rm -rf sources
rm -rf tmp
metadata: sources/metadata/files.json sources/metadata/mcus.json
sources/metadata/files.json:
mkdir -p sources/metadata
wget http://stmcufinder.com/API/getFiles.php -O sources/metadata/files.json
sources/metadata/mcus.json:
mkdir -p sources/metadata
wget http://stmcufinder.com/API/getMCUsForMCUFinderPC.php -O sources/metadata/mcus.json
sources/files: metadata
mkdir -p sources/files
jq -r .Files[].URL < sources/metadata/files.json | wget -P sources/files/ -N -i -
svd: sources/.tmp/stm32-rs
mkdir -p sources/svd
ls -1 ./sources/.tmp/stm32-rs/svd/*.formatted | xargs basename | cut -f 1 -d . \
| awk '{print "sources/.tmp/stm32-rs/svd/" $$0 ".svd.formatted" " " "sources/svd/" $$0 ".svd"}' \
| xargs -n2 cp
sources/.tmp/stm32-rs:
rm -rf ./sources/.tmp/stm32-rs
git clone https://github.com/stm32-rs/stm32-rs.git ./sources/.tmp/stm32-rs
cd ./sources/.tmp/stm32-rs && make svdformat
mcu_dirs: svd metadata
ls -1 ./sources/.tmp/stm32-rs/svd/*.formatted | xargs basename | cut -f 1 -d . \
| awk '{print "./sources/.tmp/stm32-rs/svd/" $$0 ".svd.formatted" " sources/mcu/" $$0 "/" $$0 ".svd" }' \
| tr ' ' '\n' \
| xargs -n2 cp

View File

@ -1,4 +1,4 @@
wget http://stmcufinder.com/API/getFiles.php -O sources/files.json
wget http://stmcufinder.com/API/getMCUsForMCUFinderPC.php -O sources/mcus.json
jq -r .Files[].URL < sources/files.json | wget -N -i -
jq -r .Files[].URL < sources/files.json | wget -P sources/ -N -i -

View File

@ -3,15 +3,15 @@
peri=$1
mkdir -p tmp/$peri
cargo build --release --manifest-path ../svd2rust/Cargo.toml
cargo build --release --manifest-path ../../svd2rust/Cargo.toml
for f in `ls sources/svd`; do
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.yaml --peripheral $peri > tmp/$peri/$f.yaml 2> tmp/$peri/$f.yaml.out
RUST_LOG=info ../../svd2rust/target/release/svd4rust extract-peripheral --svd sources/svd/stm32$f.svd --transform transform.yaml --peripheral $peri > tmp/$peri/$f.yaml 2> tmp/$peri/$f.yaml.out
if [ $? -ne 0 ]; then
mv tmp/$peri/$f.yaml.out tmp/$peri/$f.yaml
rm tmp/$peri/$f.yaml
echo FAIL
else
rm tmp/$peri/$f.yaml.out

31
transform.yaml Normal file
View File

@ -0,0 +1,31 @@
transforms:
- MergeEnums:
from: CCMR\d_Input_CC\dS
to: CCMR_Input_CCS
check: Layout
# Remove digits from enum names
- MergeEnums:
from: ([^\d]*)[\d]*([^\d]*)[\d]*([^\d]*)[\d]*
to: $1$2$3
skip_unmergeable: true
- MakeFieldArray:
fieldsets: .*
from: ([A-Z]+)\d+
to: $1
allow_cursed: true
- MakeRegisterArray:
blocks: .*
from: ([A-Z]+)\d+
to: $1
- MergeEnums:
from: '[HL](IFCR|ISR)_(.*)'
to: $2
- MergeFieldsets:
from: '[HL](IFCR|ISR)'
to: $1
- MakeRegisterArray:
blocks: .*
from: '[HL](IFCR|ISR)'
to: $1