stm32/rtc: remove rtc-debug and asbtract exti wakeup
This commit is contained in:
		| @@ -8,7 +8,7 @@ license = "MIT OR Apache-2.0" | ||||
| src_base = "https://github.com/embassy-rs/embassy/blob/embassy-stm32-v$VERSION/embassy-stm32/src/" | ||||
| src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-stm32/src/" | ||||
|  | ||||
| features = ["nightly", "defmt", "unstable-pac", "unstable-traits", "exti", "time-driver-any", "time", "low-power", "rtc-debug"] | ||||
| features = ["nightly", "defmt", "unstable-pac", "unstable-traits", "exti", "time-driver-any", "time", "low-power"] | ||||
| flavors = [ | ||||
|     { regex_feature = "stm32f0.*", target = "thumbv6m-none-eabi" }, | ||||
|     { regex_feature = "stm32f1.*", target = "thumbv7m-none-eabi" }, | ||||
| @@ -90,7 +90,6 @@ defmt = ["dep:defmt", "bxcan/unstable-defmt", "embassy-sync/defmt", "embassy-emb | ||||
|  | ||||
| exti = [] | ||||
| low-power = [ "dep:embassy-executor", "embassy-executor/arch-cortex-m" ] | ||||
| rtc-debug = [] | ||||
| embassy-executor = [] | ||||
|  | ||||
| ## Automatically generate `memory.x` file using [`stm32-metapac`](https://docs.rs/stm32-metapac/) | ||||
|   | ||||
| @@ -89,9 +89,6 @@ impl Executor { | ||||
|  | ||||
|         self.time_driver.resume_time(); | ||||
|         trace!("low power: resume time"); | ||||
|  | ||||
|         #[cfg(feature = "rtc-debug")] | ||||
|         cortex_m::asm::bkpt(); | ||||
|     } | ||||
|  | ||||
|     pub(self) fn stop_with_rtc(&mut self, rtc: &'static Rtc) { | ||||
| @@ -102,8 +99,7 @@ impl Executor { | ||||
|         crate::interrupt::typelevel::RTC_WKUP::unpend(); | ||||
|         unsafe { crate::interrupt::typelevel::RTC_WKUP::enable() }; | ||||
|  | ||||
|         EXTI.rtsr(0).modify(|w| w.set_line(22, true)); | ||||
|         EXTI.imr(0).modify(|w| w.set_line(22, true)); | ||||
|         rtc.enable_wakeup_line(); | ||||
|     } | ||||
|  | ||||
|     fn configure_pwr(&mut self) { | ||||
| @@ -121,7 +117,6 @@ impl Executor { | ||||
|         } | ||||
|  | ||||
|         trace!("low power: enter stop..."); | ||||
|         #[cfg(not(feature = "rtc-debug"))] | ||||
|         self.scb.set_sleepdeep(); | ||||
|     } | ||||
|  | ||||
| @@ -144,9 +139,6 @@ impl Executor { | ||||
|     /// | ||||
|     /// This function never returns. | ||||
|     pub fn run(&'static mut self, init: impl FnOnce(Spawner)) -> ! { | ||||
|         #[cfg(feature = "rtc-debug")] | ||||
|         trace!("low power: rtc debug enabled"); | ||||
|  | ||||
|         init(unsafe { EXECUTOR.as_mut().unwrap() }.inner.spawner()); | ||||
|  | ||||
|         loop { | ||||
|   | ||||
| @@ -75,21 +75,6 @@ impl super::Rtc { | ||||
|     /// start the wakeup alarm and wtih a duration that is as close to but less than | ||||
|     /// the requested duration, and record the instant the wakeup alarm was started | ||||
|     pub(crate) fn start_wakeup_alarm(&self, requested_duration: embassy_time::Duration) { | ||||
|         #[cfg(feature = "rtc-debug")] | ||||
|         if critical_section::with(|cs| { | ||||
|             if let Some(instant) = self.stop_time.borrow(cs).take() { | ||||
|                 self.stop_time.borrow(cs).replace(Some(instant)); | ||||
|  | ||||
|                 Some(()) | ||||
|             } else { | ||||
|                 None | ||||
|             } | ||||
|         }) | ||||
|         .is_some() | ||||
|         { | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         use embassy_time::{Duration, TICK_HZ}; | ||||
|  | ||||
|         use crate::rcc::get_freqs; | ||||
| @@ -133,6 +118,14 @@ impl super::Rtc { | ||||
|         critical_section::with(|cs| assert!(self.stop_time.borrow(cs).replace(Some(self.instant())).is_none())) | ||||
|     } | ||||
|  | ||||
|     #[cfg(feature = "low-power")] | ||||
|     pub(crate) fn enable_wakeup_line(&self) { | ||||
|         use crate::pac::EXTI; | ||||
|  | ||||
|         EXTI.rtsr(0).modify(|w| w.set_line(22, true)); | ||||
|         EXTI.imr(0).modify(|w| w.set_line(22, true)); | ||||
|     } | ||||
|  | ||||
|     #[cfg(feature = "low-power")] | ||||
|     /// stop the wakeup alarm and return the time elapsed since `start_wakeup_alarm` | ||||
|     /// was called, otherwise none | ||||
| @@ -141,9 +134,6 @@ impl super::Rtc { | ||||
|  | ||||
|         trace!("rtc: stop wakeup alarm at {}", self.instant()); | ||||
|  | ||||
|         #[cfg(feature = "rtc-debug")] | ||||
|         return None; | ||||
|  | ||||
|         self.write(false, |regs| { | ||||
|             regs.cr().modify(|w| w.set_wutie(false)); | ||||
|             regs.cr().modify(|w| w.set_wute(false)); | ||||
|   | ||||
| @@ -363,7 +363,6 @@ impl RtcDriver { | ||||
|                     .start_wakeup_alarm(time_until_next_alarm); | ||||
|             }); | ||||
|  | ||||
|             #[cfg(not(feature = "rtc-debug"))] | ||||
|             T::regs_gp16().cr1().modify(|w| w.set_cen(false)); | ||||
|  | ||||
|             Ok(()) | ||||
| @@ -375,7 +374,6 @@ impl RtcDriver { | ||||
|     pub(crate) fn resume_time(&self) { | ||||
|         self.stop_wakeup_alarm(); | ||||
|  | ||||
|         #[cfg(not(feature = "rtc-debug"))] | ||||
|         T::regs_gp16().cr1().modify(|w| w.set_cen(true)); | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user