aboutsummaryrefslogtreecommitdiff
path: root/examples/src/bin/uart.rs
diff options
context:
space:
mode:
Diffstat (limited to 'examples/src/bin/uart.rs')
-rw-r--r--examples/src/bin/uart.rs19
1 files changed, 10 insertions, 9 deletions
diff --git a/examples/src/bin/uart.rs b/examples/src/bin/uart.rs
index 0eec2cd8d..eeaf5fee6 100644
--- a/examples/src/bin/uart.rs
+++ b/examples/src/bin/uart.rs
@@ -7,13 +7,13 @@ mod example_common;
7use example_common::*; 7use example_common::*;
8 8
9use cortex_m_rt::entry; 9use cortex_m_rt::entry;
10use embassy::io::{AsyncBufRead, AsyncBufReadExt, AsyncWrite, AsyncWriteExt};
11use embassy_nrf::uarte;
12use futures::pin_mut; 10use futures::pin_mut;
13use nrf52840_hal::gpio; 11use nrf52840_hal::gpio;
14 12
15use embassy::executor::{task, Executor}; 13use embassy::executor::{task, Executor};
16static EXECUTOR: Executor = Executor::new(|| cortex_m::asm::sev()); 14use embassy::io::{AsyncBufRead, AsyncBufReadExt, AsyncWrite, AsyncWriteExt};
15use embassy::util::Forever;
16use embassy_nrf::uarte;
17 17
18#[task] 18#[task]
19async fn run() { 19async fn run() {
@@ -64,16 +64,17 @@ async fn run() {
64 } 64 }
65} 65}
66 66
67static EXECUTOR: Forever<Executor> = Forever::new();
68
67#[entry] 69#[entry]
68fn main() -> ! { 70fn main() -> ! {
69 info!("Hello World!"); 71 info!("Hello World!");
70 72
71 unsafe { 73 let executor = EXECUTOR.put(Executor::new(cortex_m::asm::wfi));
72 EXECUTOR.spawn(run()).dewrap(); 74 executor.spawn(run()).dewrap();
73 75
74 loop { 76 loop {
75 EXECUTOR.run(); 77 executor.run();
76 cortex_m::asm::wfe(); 78 cortex_m::asm::wfe();
77 }
78 } 79 }
79} 80}