commit
1ccd312e26
39
Makefile
Normal file
39
Makefile
Normal 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
|
||||
|
||||
|
@ -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 -
|
||||
|
@ -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
31
transform.yaml
Normal 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
|
Loading…
x
Reference in New Issue
Block a user