diff options
author | 2021-03-12 01:31:04 +0100 | |
---|---|---|
committer | 2021-03-12 01:31:04 +0100 | |
commit | 2e028abc1c9daaa75b14b74f00aa2780ccf88edc (patch) | |
tree | 058ec5c186b635b35814325d303cd80e8152ba2e /examples | |
parent | 37530fd687cad35a66eab75a36e660743ba9c4f9 (diff) | |
download | rtic-2e028abc1c9daaa75b14b74f00aa2780ccf88edc.tar.gz rtic-2e028abc1c9daaa75b14b74f00aa2780ccf88edc.tar.zst rtic-2e028abc1c9daaa75b14b74f00aa2780ccf88edc.zip |
task local minimal examples
Diffstat (limited to '')
-rw-r--r-- | examples/minimal-task-local-early.rs | 35 | ||||
-rw-r--r-- | examples/minimal-task-local-late.rs | 34 |
2 files changed, 69 insertions, 0 deletions
diff --git a/examples/minimal-task-local-early.rs b/examples/minimal-task-local-early.rs new file mode 100644 index 00000000..e77a8a8b --- /dev/null +++ b/examples/minimal-task-local-early.rs @@ -0,0 +1,35 @@ +//! examples/task-local-minimal-early.rs +#![deny(unsafe_code)] +#![deny(warnings)] +#![no_main] +#![no_std] + +use panic_semihosting as _; + +#[rtic::app(device = lm3s6965)] +mod app { + use cortex_m_semihosting::{debug, hprintln}; + + #[resources] + struct Resources { + // A local (move), late resource + #[task_local] + #[init(42)] + early: u32, + } + + #[init] + fn init(_: init::Context) -> (init::LateResources, init::Monotonics) { + (init::LateResources {}, init::Monotonics()) + } + + // task_local is task_local + #[idle(resources = [early])] + fn idle(cx: idle::Context) -> ! { + hprintln!("IDLE:l = {}", cx.resources.early).unwrap(); + debug::exit(debug::EXIT_SUCCESS); + loop { + cortex_m::asm::nop(); + } + } +} diff --git a/examples/minimal-task-local-late.rs b/examples/minimal-task-local-late.rs new file mode 100644 index 00000000..9815516c --- /dev/null +++ b/examples/minimal-task-local-late.rs @@ -0,0 +1,34 @@ +//! examples/minimal-task-local-late.rs +#![deny(unsafe_code)] +#![deny(warnings)] +#![no_main] +#![no_std] + +use panic_semihosting as _; + +#[rtic::app(device = lm3s6965)] +mod app { + use cortex_m_semihosting::{debug, hprintln}; + + #[resources] + struct Resources { + // A local (move), late resource + #[task_local] + late: u32, + } + + #[init] + fn init(_: init::Context) -> (init::LateResources, init::Monotonics) { + (init::LateResources { late: 42 }, init::Monotonics()) + } + + // task_local is task_local + #[idle(resources = [late])] + fn idle(cx: idle::Context) -> ! { + hprintln!("IDLE:late = {}", cx.resources.late).unwrap(); + debug::exit(debug::EXIT_SUCCESS); + loop { + cortex_m::asm::nop(); + } + } +} |