From 0bc2168cd689f996ab3d7557fd4626bccbd3b954 Mon Sep 17 00:00:00 2001 From: Per Lindgren Date: Mon, 5 Oct 2020 22:30:38 +0200 Subject: spawn examples updated --- examples/spawn2.rs | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 examples/spawn2.rs (limited to 'examples/spawn2.rs') diff --git a/examples/spawn2.rs b/examples/spawn2.rs new file mode 100644 index 0000000..07ed53a --- /dev/null +++ b/examples/spawn2.rs @@ -0,0 +1,39 @@ +//! examples/message.rs + +#![deny(unsafe_code)] +#![deny(warnings)] +#![no_main] +#![no_std] + +use cortex_m_semihosting::{debug, hprintln}; +use panic_semihosting as _; + +#[rtic::app(device = lm3s6965)] +mod app { + #[init(spawn = [foo, foo2])] + fn init(_c: init::Context) { + foo::spawn(1, 2).unwrap(); + } + + #[task()] + fn foo(_c: foo::Context, x: i32, y: u32) { + hprintln!("foo {}, {}", x, y).unwrap(); + if x == 2 { + debug::exit(debug::EXIT_SUCCESS); + } + foo2::spawn(2).unwrap(); + } + + #[task()] + fn foo2(_c: foo2::Context, x: i32) { + hprintln!("foo2 {}", x).unwrap(); + foo::spawn(x, 0).unwrap(); + } + + // RTIC requires that unused interrupts are declared in an extern block when + // using software tasks; these free interrupts will be used to dispatch the + // software tasks. + extern "C" { + fn SSI0(); + } +} -- cgit v1.2.3 From 524273c96a978299b64e51a9cdcc007585a0f170 Mon Sep 17 00:00:00 2001 From: Emil Fresk Date: Sun, 11 Oct 2020 18:38:38 +0200 Subject: Now with spawn/schedule from anywhere --- examples/spawn2.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'examples/spawn2.rs') diff --git a/examples/spawn2.rs b/examples/spawn2.rs index 07ed53a..2998d16 100644 --- a/examples/spawn2.rs +++ b/examples/spawn2.rs @@ -10,12 +10,14 @@ use panic_semihosting as _; #[rtic::app(device = lm3s6965)] mod app { - #[init(spawn = [foo, foo2])] - fn init(_c: init::Context) { + #[init] + fn init(_c: init::Context) -> init::LateResources { foo::spawn(1, 2).unwrap(); + + init::LateResources {} } - #[task()] + #[task] fn foo(_c: foo::Context, x: i32, y: u32) { hprintln!("foo {}, {}", x, y).unwrap(); if x == 2 { @@ -24,7 +26,7 @@ mod app { foo2::spawn(2).unwrap(); } - #[task()] + #[task] fn foo2(_c: foo2::Context, x: i32) { hprintln!("foo2 {}", x).unwrap(); foo::spawn(x, 0).unwrap(); -- cgit v1.2.3 From b5779d834e2ecd97970c0915f2edd0c8030c693d Mon Sep 17 00:00:00 2001 From: Emil Fresk Date: Thu, 15 Oct 2020 18:06:03 +0200 Subject: Fix comments in examples --- examples/spawn2.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'examples/spawn2.rs') diff --git a/examples/spawn2.rs b/examples/spawn2.rs index 2998d16..b50a3ee 100644 --- a/examples/spawn2.rs +++ b/examples/spawn2.rs @@ -1,4 +1,4 @@ -//! examples/message.rs +//! examples/spawn2.rs #![deny(unsafe_code)] #![deny(warnings)] -- cgit v1.2.3