diff --git a/embassy-macros/src/lib.rs b/embassy-macros/src/lib.rs index 450edbe4..bcf9dd4e 100644 --- a/embassy-macros/src/lib.rs +++ b/embassy-macros/src/lib.rs @@ -137,6 +137,20 @@ pub fn interrupt_declare(item: TokenStream) -> TokenStream { &HANDLER } } + + impl ::embassy::util::PeripheralBorrow for #name_interrupt { + type Target = #name_interrupt; + unsafe fn unborrow(self) -> #name_interrupt { + self + } + } + + impl ::embassy::util::PeripheralBorrow for &mut #name_interrupt { + type Target = #name_interrupt; + unsafe fn unborrow(self) -> #name_interrupt { + ::core::ptr::read(self) + } + } }; result.into() }