M Makefile => Makefile +2 -2
@@ 51,9 51,9 @@ src/devices/%/mod.rs: src/devices/%/mod.full.rs
@# to the global version
@patch --no-backup-if-mismatch --quiet $@ patch/modrs.patch
@echo -e "\tGEN-VECTOR\t>macros/src/vector.rs"
- @./gen-intr-lut.sh src/devices/*/interrupt.rs >macros/src/vector.rs
+ @./gen-intr-lut.sh svd/*.patched >macros/src/vector.rs
-macros/src/vector.rs: src/devices/*/interrupt.rs
+macros/src/vector.rs: svd/*.patched
@echo -e "\tGEN-VECTOR\t>macros/src/vector.rs"
@./gen-intr-lut.sh $^ >$@
M gen-intr-lut.sh => gen-intr-lut.sh +3 -5
@@ 7,12 7,10 @@ echo "pub fn lookup_vector(chip: &str, intr: &str) -> Option<usize> {"
echo " match chip {"
for intr_path in "$@"; do
- chip="$(basename "$(dirname "$intr_path")")"
+ chip="$(basename "${intr_path%.svd.patched}")"
echo " \"$chip\" => match intr {"
-
- sed '/=> Ok(Interrupt::.\+),$/!d
- s/ \+\(.\+\) => Ok(Interrupt::\(.\+\)),$/ "\2" => Some(\1),/' "$intr_path"
-
+ # toupper() to be compliant with svd2rust interrupts name
+ svd interrupts --no-gaps $intr_path | awk '{print " \""toupper(substr($2, 1, length($2)-1))"\"" " => Some(" $1"),"}'
echo " _ => None,"
echo " },"
done