From 97ad9619a8e874630b723afe6063f99c0e426958 Mon Sep 17 00:00:00 2001 From: xoviat Date: Thu, 30 Apr 2026 20:13:03 -0500 Subject: [PATCH 1/3] make steal const and not take --- cortex-m/src/peripheral/mod.rs | 101 +++++++++++++++++---------------- 1 file changed, 53 insertions(+), 48 deletions(-) diff --git a/cortex-m/src/peripheral/mod.rs b/cortex-m/src/peripheral/mod.rs index d65707c1..1d5e212a 100644 --- a/cortex-m/src/peripheral/mod.rs +++ b/cortex-m/src/peripheral/mod.rs @@ -168,60 +168,65 @@ impl Peripherals { }) } + /// Steal the peripherals without marking them as taken. + pub const unsafe fn const_steal() -> Self { + Peripherals { + #[cfg(feature = "cm7")] + AC: AC { + _marker: PhantomData, + }, + CBP: CBP { + _marker: PhantomData, + }, + CPUID: CPUID { + _marker: PhantomData, + }, + DCB: DCB { + _marker: PhantomData, + }, + DWT: DWT { + _marker: PhantomData, + }, + FPB: FPB { + _marker: PhantomData, + }, + FPU: FPU { + _marker: PhantomData, + }, + ICB: ICB { + _marker: PhantomData, + }, + ITM: ITM { + _marker: PhantomData, + }, + MPU: MPU { + _marker: PhantomData, + }, + NVIC: NVIC { + _marker: PhantomData, + }, + SAU: SAU { + _marker: PhantomData, + }, + SCB: SCB { + _marker: PhantomData, + }, + SYST: SYST { + _marker: PhantomData, + }, + TPIU: TPIU { + _marker: PhantomData, + }, + } + } + /// Unchecked version of `Peripherals::take` #[inline] pub unsafe fn steal() -> Self { unsafe { TAKEN = true; - Peripherals { - #[cfg(feature = "cm7")] - AC: AC { - _marker: PhantomData, - }, - CBP: CBP { - _marker: PhantomData, - }, - CPUID: CPUID { - _marker: PhantomData, - }, - DCB: DCB { - _marker: PhantomData, - }, - DWT: DWT { - _marker: PhantomData, - }, - FPB: FPB { - _marker: PhantomData, - }, - FPU: FPU { - _marker: PhantomData, - }, - ICB: ICB { - _marker: PhantomData, - }, - ITM: ITM { - _marker: PhantomData, - }, - MPU: MPU { - _marker: PhantomData, - }, - NVIC: NVIC { - _marker: PhantomData, - }, - SAU: SAU { - _marker: PhantomData, - }, - SCB: SCB { - _marker: PhantomData, - }, - SYST: SYST { - _marker: PhantomData, - }, - TPIU: TPIU { - _marker: PhantomData, - }, - } + Self::const_steal() } } } From 673a7bee439c5a590afb3b0f30419c1c2c28b37e Mon Sep 17 00:00:00 2001 From: xoviat Date: Thu, 30 Apr 2026 20:13:09 -0500 Subject: [PATCH 2/3] ci: fmt --- xtask/tests/ci.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xtask/tests/ci.rs b/xtask/tests/ci.rs index 410e59b9..947f0a59 100644 --- a/xtask/tests/ci.rs +++ b/xtask/tests/ci.rs @@ -50,7 +50,7 @@ static PACKAGE_FEATURES: &[(&str, &[&str], &[&str])] = &[ ("panic-itm", NON_BASE_TARGETS, &[]), ]; -fn check_crates_build(is_nightly: bool, is_msrv: bool) { +fn check_crates_build(is_nightly: bool, _is_msrv: bool) { // Build all crates for each supported target. for (package, targets, all_features) in PACKAGE_FEATURES { for target in *targets { From c2cba3f915ceef53f6ec18a6c526fd99eb2910ef Mon Sep 17 00:00:00 2001 From: xoviat Date: Thu, 30 Apr 2026 20:14:43 -0500 Subject: [PATCH 3/3] fmt --- cortex-m/src/peripheral/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/cortex-m/src/peripheral/mod.rs b/cortex-m/src/peripheral/mod.rs index 1d5e212a..0202e337 100644 --- a/cortex-m/src/peripheral/mod.rs +++ b/cortex-m/src/peripheral/mod.rs @@ -169,6 +169,7 @@ impl Peripherals { } /// Steal the peripherals without marking them as taken. + #[inline] pub const unsafe fn const_steal() -> Self { Peripherals { #[cfg(feature = "cm7")]