diff options
-rw-r--r-- | CHANGELOG.md | 2 | ||||
-rw-r--r-- | src/interrupt.rs | 11 |
2 files changed, 12 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index d7cae7a..198cecc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/). - New `InterruptNumber` trait is now required on interrupt arguments to the various NVIC functions, replacing the previous use of `Nr` from bare-metal. + For backwards compatibility, `InterruptNumber` is implemented for types + which are `Nr + Copy`, but this will be removed in a future version. - Associated const `PTR` is introduced to Core Peripherals to eventually replace the existing `ptr()` API. - A delay driver based on SysTick. diff --git a/src/interrupt.rs b/src/interrupt.rs index 68719ec..ad76ff2 100644 --- a/src/interrupt.rs +++ b/src/interrupt.rs @@ -1,6 +1,6 @@ //! Interrupts -pub use bare_metal::{CriticalSection, Mutex}; +pub use bare_metal::{CriticalSection, Mutex, Nr}; /// Trait for enums of external interrupt numbers. /// @@ -23,6 +23,15 @@ pub unsafe trait InterruptNumber: Copy { fn number(self) -> u16; } +/// Implement InterruptNumber for the old bare_metal::Nr trait. +/// This implementation is for backwards compatibility only and will be removed in cortex-m 0.8. +#[deprecated(since="0.7.0", note="Please update your PAC to one using the latest svd2rust")] +unsafe impl<T: Nr + Copy> InterruptNumber for T { + fn number(self) -> u16 { + self.nr() as u16 + } +} + /// Disables all interrupts #[inline] pub fn disable() { |