aboutsummaryrefslogtreecommitdiff
path: root/tests/stm32/src/bin/stop.rs
diff options
context:
space:
mode:
authorRaul Alimbekov <[email protected]>2025-12-16 09:05:22 +0300
committerGitHub <[email protected]>2025-12-16 09:05:22 +0300
commitc9a04b4b732b7a3b696eb8223664c1a7942b1875 (patch)
tree6dbe5c02e66eed8d8762f13f95afd24f8db2b38c /tests/stm32/src/bin/stop.rs
parentcde24a3ef1117653ba5ed4184102b33f745782fb (diff)
parent5ae6e060ec1c90561719aabdc29d5b6e7b8b0a82 (diff)
Merge branch 'main' into main
Diffstat (limited to 'tests/stm32/src/bin/stop.rs')
-rw-r--r--tests/stm32/src/bin/stop.rs29
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
8use chrono::NaiveDate; 8use chrono::NaiveDate;
9use common::*; 9use common::*;
10use cortex_m_rt::entry;
11use embassy_executor::Spawner; 10use embassy_executor::Spawner;
12use embassy_stm32::low_power::{stop_ready, stop_with_rtc, Executor, StopMode}; 11use embassy_stm32::low_power::{StopMode, stop_ready};
13use embassy_stm32::rcc::LsConfig; 12use embassy_stm32::rcc::LsConfig;
14use embassy_stm32::rtc::{Rtc, RtcConfig}; 13use embassy_stm32::rtc::Rtc;
15use embassy_stm32::Config; 14use embassy_stm32::{Config, low_power};
16use embassy_time::Timer; 15use embassy_time::Timer;
17use static_cell::StaticCell;
18
19#[entry]
20fn 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]
27async fn task_1() { 18async 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")]
48async fn async_main(spawner: Spawner) { 39async 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());