diff options
| -rw-r--r-- | embassy-stm32/src/lib.rs | 4 |
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] |
| 167 | macro_rules! bind_interrupts { | 167 | macro_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 | )* |
