From a95c78b8bd5ac48d7c645f85443b585bcb4dd989 Mon Sep 17 00:00:00 2001 From: Ulf Lilleengen Date: Thu, 20 May 2021 09:35:56 +0200 Subject: [PATCH] Merge exti macros into one and use simpler recursion --- embassy-stm32/gen.py | 1 - embassy-stm32/src/exti.rs | 32 +++++++++++--------------------- 2 files changed, 11 insertions(+), 22 deletions(-) diff --git a/embassy-stm32/gen.py b/embassy-stm32/gen.py index 7c82cd9a..6cbcde7b 100644 --- a/embassy-stm32/gen.py +++ b/embassy-stm32/gen.py @@ -242,7 +242,6 @@ for chip in chips.values(): use super::*; impl_exti_irq!({','.join(exti_interrupts)}); - impl_exti_init!({','.join(exti_interrupts)}); }} }} mod interrupt_vector {{ diff --git a/embassy-stm32/src/exti.rs b/embassy-stm32/src/exti.rs index 9f2401c8..ce6673ba 100644 --- a/embassy-stm32/src/exti.rs +++ b/embassy-stm32/src/exti.rs @@ -215,29 +215,19 @@ impl_exti!(EXTI14, 14); impl_exti!(EXTI15, 15); macro_rules! impl_exti_irq { - ($e:ident) => { - #[interrupt] - unsafe fn $e() { - crate::exti::on_irq() - } - }; - - ($e:ident, $($es:ident),+) => { - impl_exti_irq! { $e } - impl_exti_irq! { $($es),+ } - }; -} - -macro_rules! impl_exti_init { - ($e:ident) => { - crate::interrupt::$e::steal().enable(); - }; - - ($e:ident, $($es:ident),+) => { + ($($e:ident),+) => { /// safety: must be called only once pub(crate) unsafe fn init() { - impl_exti_init! { $e } - impl_exti_init! { $($es),+ } + $( + crate::interrupt::$e::steal().enable(); + )+ } + + $( + #[interrupt] + unsafe fn $e() { + crate::exti::on_irq() + } + )+ }; }