Adjust to pull the SVDs.
And expect svd2rust to be sibling to -metapac.
This commit is contained in:
parent
3af070672f
commit
660f64c6a5
40
Makefile
40
Makefile
@ -2,39 +2,37 @@ SHELL=/bin/bash
|
|||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf sources
|
rm -rf sources
|
||||||
prepare:
|
rm -rf tmp
|
||||||
mkdir -p sources
|
|
||||||
mkdir -p sources/metadata
|
|
||||||
mkdir -p sources/files
|
|
||||||
mkdir -p sources/mcu
|
|
||||||
mkdir -p sources/svd
|
|
||||||
mkdir -p sources/.tmp
|
|
||||||
|
|
||||||
metadata: prepare
|
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
|
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
|
wget http://stmcufinder.com/API/getMCUsForMCUFinderPC.php -O sources/metadata/mcus.json
|
||||||
|
|
||||||
files: metadata
|
sources/files: metadata
|
||||||
|
mkdir -p sources/files
|
||||||
jq -r .Files[].URL < sources/metadata/files.json | wget -P sources/files/ -N -i -
|
jq -r .Files[].URL < sources/metadata/files.json | wget -P sources/files/ -N -i -
|
||||||
|
|
||||||
#mcu_dirs: metadata
|
svd: sources/.tmp/stm32-rs
|
||||||
#jq -r '.MCUs[] | select(.name|test("STM32.*")) | .name' < sources/metadata/mcus.json \
|
mkdir -p sources/svd
|
||||||
#| sed 's/\(STM32[A-Z]*[0-9]*\)\(.*\)/\1/' \
|
ls -1 ./sources/.tmp/stm32-rs/svd/*.formatted | xargs basename | cut -f 1 -d . \
|
||||||
#| sort | uniq \
|
| awk '{print "sources/.tmp/stm32-rs/svd/" $$0 ".svd.formatted" " " "sources/svd/" $$0 ".svd"}' \
|
||||||
#| awk '{print "sources/mcus/" tolower($0)}' \
|
| xargs -n2 cp
|
||||||
#| xargs mkdir -p
|
|
||||||
|
|
||||||
svd:
|
sources/.tmp/stm32-rs:
|
||||||
|
rm -rf ./sources/.tmp/stm32-rs
|
||||||
git clone https://github.com/stm32-rs/stm32-rs.git ./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
|
cd ./sources/.tmp/stm32-rs && make svdformat
|
||||||
|
|
||||||
mcu_dirs:
|
mcu_dirs: svd metadata
|
||||||
ls -1 ./sources/.tmp/stm32-rs/svd/*.formatted | xargs basename | cut -f 1 -d . \
|
|
||||||
| awk '{print "sources/mcu/" tolower($0)}' \
|
|
||||||
| xargs mkdir -p
|
|
||||||
|
|
||||||
ls -1 ./sources/.tmp/stm32-rs/svd/*.formatted | xargs basename | cut -f 1 -d . \
|
ls -1 ./sources/.tmp/stm32-rs/svd/*.formatted | xargs basename | cut -f 1 -d . \
|
||||||
| awk '{print "./sources/.tmp/stm32-rs/svd/" tolower($0) ".svd.formatted" " sources/mcu/" tolower($0) "/" tolower($0) ".svd" }' \
|
| awk '{print "./sources/.tmp/stm32-rs/svd/" $$0 ".svd.formatted" " sources/mcu/" $$0 "/" $$0 ".svd" }' \
|
||||||
| tr ' ' '\n' \
|
| tr ' ' '\n' \
|
||||||
| xargs -n2 cp
|
| xargs -n2 cp
|
||||||
|
|
||||||
|
@ -3,15 +3,15 @@
|
|||||||
peri=$1
|
peri=$1
|
||||||
mkdir -p tmp/$peri
|
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
|
for f in `ls sources/svd`; do
|
||||||
f=${f#"stm32"}
|
f=${f#"stm32"}
|
||||||
f=${f%".svd"}
|
f=${f%".svd"}
|
||||||
echo -n processing $f ...
|
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
|
if [ $? -ne 0 ]; then
|
||||||
mv tmp/$peri/$f.yaml.out tmp/$peri/$f.yaml
|
rm tmp/$peri/$f.yaml
|
||||||
echo FAIL
|
echo FAIL
|
||||||
else
|
else
|
||||||
rm tmp/$peri/$f.yaml.out
|
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