diff options
Diffstat (limited to 'tests/stm32/src/bin/stop.rs')
| -rw-r--r-- | tests/stm32/src/bin/stop.rs | 29 |
1 files changed, 9 insertions, 20 deletions
diff --git a/tests/stm32/src/bin/stop.rs b/tests/stm32/src/bin/stop.rs index 8119c1f39..83c375bc5 100644 --- a/tests/stm32/src/bin/stop.rs +++ b/tests/stm32/src/bin/stop.rs | |||
| @@ -7,21 +7,12 @@ mod common; | |||
| 7 | 7 | ||
| 8 | use chrono::NaiveDate; | 8 | use chrono::NaiveDate; |
| 9 | use common::*; | 9 | use common::*; |
| 10 | use cortex_m_rt::entry; | ||
| 11 | use embassy_executor::Spawner; | 10 | use embassy_executor::Spawner; |
| 12 | use embassy_stm32::low_power::{stop_ready, stop_with_rtc, Executor, StopMode}; | 11 | use embassy_stm32::low_power::{StopMode, stop_ready}; |
| 13 | use embassy_stm32::rcc::LsConfig; | 12 | use embassy_stm32::rcc::LsConfig; |
| 14 | use embassy_stm32::rtc::{Rtc, RtcConfig}; | 13 | use embassy_stm32::rtc::Rtc; |
| 15 | use embassy_stm32::Config; | 14 | use embassy_stm32::{Config, low_power}; |
| 16 | use embassy_time::Timer; | 15 | use embassy_time::Timer; |
| 17 | use static_cell::StaticCell; | ||
| 18 | |||
| 19 | #[entry] | ||
| 20 | fn main() -> ! { | ||
| 21 | Executor::take().run(|spawner| { | ||
| 22 | spawner.spawn(unwrap!(async_main(spawner))); | ||
| 23 | }); | ||
| 24 | } | ||
| 25 | 16 | ||
| 26 | #[embassy_executor::task] | 17 | #[embassy_executor::task] |
| 27 | async fn task_1() { | 18 | async fn task_1() { |
| @@ -44,12 +35,13 @@ async fn task_2() { | |||
| 44 | cortex_m::asm::bkpt(); | 35 | cortex_m::asm::bkpt(); |
| 45 | } | 36 | } |
| 46 | 37 | ||
| 47 | #[embassy_executor::task] | 38 | #[embassy_executor::main(executor = "low_power::Executor")] |
| 48 | async fn async_main(spawner: Spawner) { | 39 | async fn async_main(spawner: Spawner) { |
| 49 | let _ = config(); | 40 | let _ = config(); |
| 50 | 41 | ||
| 51 | let mut config = Config::default(); | 42 | let mut config = Config::default(); |
| 52 | config.rcc.ls = LsConfig::default_lse(); | 43 | config.rcc.ls = LsConfig::default_lse(); |
| 44 | config.rtc._disable_rtc = false; | ||
| 53 | 45 | ||
| 54 | // System Clock seems cannot be greater than 16 MHz | 46 | // System Clock seems cannot be greater than 16 MHz |
| 55 | #[cfg(any(feature = "stm32h563zi", feature = "stm32h503rb"))] | 47 | #[cfg(any(feature = "stm32h563zi", feature = "stm32h503rb"))] |
| @@ -66,14 +58,11 @@ async fn async_main(spawner: Spawner) { | |||
| 66 | .and_hms_opt(10, 30, 15) | 58 | .and_hms_opt(10, 30, 15) |
| 67 | .unwrap(); | 59 | .unwrap(); |
| 68 | 60 | ||
| 69 | let mut rtc = Rtc::new(p.RTC, RtcConfig::default()); | 61 | let (rtc, _time_provider) = Rtc::new(p.RTC); |
| 70 | 62 | ||
| 71 | rtc.set_datetime(now.into()).expect("datetime not set"); | 63 | critical_section::with(|cs| { |
| 72 | 64 | rtc.borrow_mut(cs).set_datetime(now.into()).expect("datetime not set"); | |
| 73 | static RTC: StaticCell<Rtc> = StaticCell::new(); | 65 | }); |
| 74 | let rtc = RTC.init(rtc); | ||
| 75 | |||
| 76 | stop_with_rtc(rtc); | ||
| 77 | 66 | ||
| 78 | spawner.spawn(task_1().unwrap()); | 67 | spawner.spawn(task_1().unwrap()); |
| 79 | spawner.spawn(task_2().unwrap()); | 68 | spawner.spawn(task_2().unwrap()); |
