aboutsummaryrefslogtreecommitdiff
path: root/examples/nrf/src/bin/raw_spawn.rs
diff options
context:
space:
mode:
authorDominik Boehi <[email protected]>2023-01-09 22:29:58 +0100
committerDominik Boehi <[email protected]>2023-01-09 22:30:02 +0100
commit0a27b6cedb52453123190671f294bbd34918e09a (patch)
tree3888e0b352388ace235517ec97c4d3a88fd7fcfa /examples/nrf/src/bin/raw_spawn.rs
parent401185b1d95a2519ee94e5d5654cc9325fe85eec (diff)
Rename examples/nrf to examples/nrf52840
Diffstat (limited to 'examples/nrf/src/bin/raw_spawn.rs')
-rw-r--r--examples/nrf/src/bin/raw_spawn.rs52
1 files changed, 0 insertions, 52 deletions
diff --git a/examples/nrf/src/bin/raw_spawn.rs b/examples/nrf/src/bin/raw_spawn.rs
deleted file mode 100644
index 1b067f5e4..000000000
--- a/examples/nrf/src/bin/raw_spawn.rs
+++ /dev/null
@@ -1,52 +0,0 @@
1#![no_std]
2#![no_main]
3
4use core::mem;
5
6use cortex_m_rt::entry;
7use defmt::{info, unwrap};
8use embassy_executor::raw::TaskStorage;
9use embassy_executor::Executor;
10use embassy_time::{Duration, Timer};
11use static_cell::StaticCell;
12use {defmt_rtt as _, panic_probe as _};
13
14async fn run1() {
15 loop {
16 info!("BIG INFREQUENT TICK");
17 Timer::after(Duration::from_ticks(64000)).await;
18 }
19}
20
21async fn run2() {
22 loop {
23 info!("tick");
24 Timer::after(Duration::from_ticks(13000)).await;
25 }
26}
27
28static EXECUTOR: StaticCell<Executor> = StaticCell::new();
29
30#[entry]
31fn main() -> ! {
32 info!("Hello World!");
33
34 let _p = embassy_nrf::init(Default::default());
35 let executor = EXECUTOR.init(Executor::new());
36
37 let run1_task = TaskStorage::new();
38 let run2_task = TaskStorage::new();
39
40 // Safety: these variables do live forever if main never returns.
41 let run1_task = unsafe { make_static(&run1_task) };
42 let run2_task = unsafe { make_static(&run2_task) };
43
44 executor.run(|spawner| {
45 unwrap!(spawner.spawn(run1_task.spawn(|| run1())));
46 unwrap!(spawner.spawn(run2_task.spawn(|| run2())));
47 });
48}
49
50unsafe fn make_static<T>(t: &T) -> &'static T {
51 mem::transmute(t)
52}