diff --git a/embassy-nrf/Cargo.toml b/embassy-nrf/Cargo.toml index 85ded1df4..1fdc83fb3 100644 --- a/embassy-nrf/Cargo.toml +++ b/embassy-nrf/Cargo.toml @@ -5,6 +5,13 @@ authors = ["Dario Nieuwenhuis "] edition = "2018" [features] + +# Reexport the PAC for the currently enabled chip at `embassy_nrf::pac`. +# This is unstable because semver-minor (non-breaking) releases of embassy-nrf may major-bump (breaking) the PAC version. +# If this is an issue for you, you're encouraged to directly depend on a fixed version of the PAC. +# There are no plans to make this stable. +unstable-pac = [] + defmt-trace = [ ] defmt-debug = [ ] defmt-info = [ ] diff --git a/embassy-nrf/src/lib.rs b/embassy-nrf/src/lib.rs index c2e461cf1..35815f792 100644 --- a/embassy-nrf/src/lib.rs +++ b/embassy-nrf/src/lib.rs @@ -65,7 +65,11 @@ mod chip; #[path = "chips/nrf52840.rs"] mod chip; +#[cfg(feature = "unstable-pac")] +pub use chip::pac; +#[cfg(not(feature = "unstable-pac"))] pub(crate) use chip::pac; + pub use chip::{peripherals, Peripherals}; pub mod interrupt { diff --git a/embassy-rp/Cargo.toml b/embassy-rp/Cargo.toml index ba9984a80..c61b8c997 100644 --- a/embassy-rp/Cargo.toml +++ b/embassy-rp/Cargo.toml @@ -5,6 +5,13 @@ authors = ["Dario Nieuwenhuis "] edition = "2018" [features] + +# Reexport the PAC for the currently enabled chip at `embassy_rp::pac`. +# This is unstable because semver-minor (non-breaking) releases of embassy-nrf may major-bump (breaking) the PAC version. +# If this is an issue for you, you're encouraged to directly depend on a fixed version of the PAC. +# There are no plans to make this stable. +unstable-pac = [] + defmt-trace = [ ] defmt-debug = [ ] defmt-info = [ ] diff --git a/embassy-rp/src/lib.rs b/embassy-rp/src/lib.rs index aefc86c00..c53d2e58d 100644 --- a/embassy-rp/src/lib.rs +++ b/embassy-rp/src/lib.rs @@ -5,7 +5,10 @@ #![feature(never_type)] #![allow(incomplete_features)] +#[cfg(feature = "unstable-pac")] pub use rp2040_pac2 as pac; +#[cfg(not(feature = "unstable-pac"))] +pub(crate) use rp2040_pac2 as pac; // This mod MUST go first, so that the others see its macros. pub(crate) mod fmt; diff --git a/embassy-stm32/Cargo.toml b/embassy-stm32/Cargo.toml index 654bc98ef..4e4d7ff82 100644 --- a/embassy-stm32/Cargo.toml +++ b/embassy-stm32/Cargo.toml @@ -43,6 +43,12 @@ defmt-error = [ ] sdmmc-rs = ["embedded-sdmmc"] net = ["embassy-net", "vcell"] +# Reexport stm32-metapac at `embassy_stm32::pac`. +# This is unstable because semver-minor (non-breaking) releases of embassy-stm32 may major-bump (breaking) the stm32-metapac version. +# If this is an issue for you, you're encouraged to directly depend on a fixed version of the PAC. +# There are no plans to make this stable. +unstable-pac = [] + # BEGIN GENERATED FEATURES # Generated by gen_features.py. DO NOT EDIT. stm32f030c6 = [ "stm32-metapac/stm32f030c6",] diff --git a/embassy-stm32/src/lib.rs b/embassy-stm32/src/lib.rs index 4b2826ae8..22999a69e 100644 --- a/embassy-stm32/src/lib.rs +++ b/embassy-stm32/src/lib.rs @@ -6,6 +6,9 @@ #![feature(type_alias_impl_trait)] #![allow(incomplete_features)] +#[cfg(feature = "unstable-pac")] +pub use stm32_metapac as pac; +#[cfg(not(feature = "unstable-pac"))] pub(crate) use stm32_metapac as pac; // This must go FIRST so that all the other modules see its macros.