aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--embassy-stm32/src/lib.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/embassy-stm32/src/lib.rs b/embassy-stm32/src/lib.rs
index 451f595e0..3ff9dcb7e 100644
--- a/embassy-stm32/src/lib.rs
+++ b/embassy-stm32/src/lib.rs
@@ -165,7 +165,7 @@ pub use crate::_generated::interrupt;
165// developer note: this macro can't be in `embassy-hal-internal` due to the use of `$crate`. 165// developer note: this macro can't be in `embassy-hal-internal` due to the use of `$crate`.
166#[macro_export] 166#[macro_export]
167macro_rules! bind_interrupts { 167macro_rules! bind_interrupts {
168 ($vis:vis struct $name:ident { $($irq:ident => $($handler:ty),*;)* }) => { 168 ($vis:vis struct $name:ident { $($(#[cfg($cond:meta)])? $irq:ident => $($handler:ty),*;)* }) => {
169 #[derive(Copy, Clone)] 169 #[derive(Copy, Clone)]
170 $vis struct $name; 170 $vis struct $name;
171 171
@@ -174,11 +174,13 @@ macro_rules! bind_interrupts {
174 #[no_mangle] 174 #[no_mangle]
175 unsafe extern "C" fn $irq() { 175 unsafe extern "C" fn $irq() {
176 $( 176 $(
177 $(#[cfg($cond)])?
177 <$handler as $crate::interrupt::typelevel::Handler<$crate::interrupt::typelevel::$irq>>::on_interrupt(); 178 <$handler as $crate::interrupt::typelevel::Handler<$crate::interrupt::typelevel::$irq>>::on_interrupt();
178 )* 179 )*
179 } 180 }
180 181
181 $( 182 $(
183 $(#[cfg($cond)])?
182 unsafe impl $crate::interrupt::typelevel::Binding<$crate::interrupt::typelevel::$irq, $handler> for $name {} 184 unsafe impl $crate::interrupt::typelevel::Binding<$crate::interrupt::typelevel::$irq, $handler> for $name {}
183 )* 185 )*
184 )* 186 )*