diff options
| author | xoviat <[email protected]> | 2023-09-21 19:32:48 -0500 |
|---|---|---|
| committer | xoviat <[email protected]> | 2023-09-21 19:32:48 -0500 |
| commit | 7cf327130e97f2569e1be73054a778ba5bf39d5b (patch) | |
| tree | c2ab9527d56f0541fa8e7b91cc7b5e001116adce /tests/stm32/src/bin | |
| parent | 02b05231992af4fec3c92d0cc6ce99ae6508bc41 (diff) | |
stm32/low-power: create one critical-section for all time ops
Diffstat (limited to 'tests/stm32/src/bin')
| -rw-r--r-- | tests/stm32/src/bin/stop.rs | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/tests/stm32/src/bin/stop.rs b/tests/stm32/src/bin/stop.rs index f60ab271a..48d59b794 100644 --- a/tests/stm32/src/bin/stop.rs +++ b/tests/stm32/src/bin/stop.rs | |||
| @@ -19,14 +19,32 @@ use static_cell::make_static; | |||
| 19 | 19 | ||
| 20 | #[entry] | 20 | #[entry] |
| 21 | fn main() -> ! { | 21 | fn main() -> ! { |
| 22 | let executor = Executor::take(); | 22 | Executor::take().run(|spawner| { |
| 23 | executor.run(|spawner| { | ||
| 24 | unwrap!(spawner.spawn(async_main(spawner))); | 23 | unwrap!(spawner.spawn(async_main(spawner))); |
| 25 | }); | 24 | }); |
| 26 | } | 25 | } |
| 27 | 26 | ||
| 28 | #[embassy_executor::task] | 27 | #[embassy_executor::task] |
| 29 | async fn async_main(_spawner: Spawner) { | 28 | async fn task_1() { |
| 29 | for _ in 0..9 { | ||
| 30 | info!("task 1: waiting for 500ms..."); | ||
| 31 | Timer::after(Duration::from_millis(500)).await; | ||
| 32 | } | ||
| 33 | } | ||
| 34 | |||
| 35 | #[embassy_executor::task] | ||
| 36 | async fn task_2() { | ||
| 37 | for _ in 0..5 { | ||
| 38 | info!("task 2: waiting for 1000ms..."); | ||
| 39 | Timer::after(Duration::from_millis(1000)).await; | ||
| 40 | } | ||
| 41 | |||
| 42 | info!("Test OK"); | ||
| 43 | cortex_m::asm::bkpt(); | ||
| 44 | } | ||
| 45 | |||
| 46 | #[embassy_executor::task] | ||
| 47 | async fn async_main(spawner: Spawner) { | ||
| 30 | let mut config = config(); | 48 | let mut config = config(); |
| 31 | 49 | ||
| 32 | config.rcc.lse = Some(Hertz(32_768)); | 50 | config.rcc.lse = Some(Hertz(32_768)); |
| @@ -48,11 +66,6 @@ async fn async_main(_spawner: Spawner) { | |||
| 48 | 66 | ||
| 49 | stop_with_rtc(rtc); | 67 | stop_with_rtc(rtc); |
| 50 | 68 | ||
| 51 | info!("Waiting..."); | 69 | spawner.spawn(task_1()).unwrap(); |
| 52 | Timer::after(Duration::from_secs(2)).await; | 70 | spawner.spawn(task_2()).unwrap(); |
| 53 | info!("Waiting..."); | ||
| 54 | Timer::after(Duration::from_secs(3)).await; | ||
| 55 | |||
| 56 | info!("Test OK"); | ||
| 57 | cortex_m::asm::bkpt(); | ||
| 58 | } | 71 | } |
