diff options
Diffstat (limited to 'examples/shared-with-init.rs')
-rw-r--r-- | examples/shared-with-init.rs | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/examples/shared-with-init.rs b/examples/shared-with-init.rs index 0fb9191c..14fa54b7 100644 --- a/examples/shared-with-init.rs +++ b/examples/shared-with-init.rs @@ -5,30 +5,32 @@ #![no_main] #![no_std] -extern crate panic_halt; - use cortex_m_semihosting::debug; use lm3s6965::Interrupt; +use panic_halt as _; use rtfm::app; pub struct MustBeSend; #[app(device = lm3s6965)] const APP: () = { - static mut SHARED: Option<MustBeSend> = None; + struct Resources { + #[init(None)] + shared: Option<MustBeSend>, + } - #[init(resources = [SHARED])] + #[init(resources = [shared])] fn init(c: init::Context) { // this `message` will be sent to task `UART0` let message = MustBeSend; - *c.resources.SHARED = Some(message); + *c.resources.shared = Some(message); rtfm::pend(Interrupt::UART0); } - #[interrupt(resources = [SHARED])] - fn UART0(c: UART0::Context) { - if let Some(message) = c.resources.SHARED.take() { + #[task(binds = UART0, resources = [shared])] + fn uart0(c: uart0::Context) { + if let Some(message) = c.resources.shared.take() { // `message` has been received drop(message); |