diff options
Diffstat (limited to 'examples/resource.rs')
-rw-r--r-- | examples/resource.rs | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/examples/resource.rs b/examples/resource.rs deleted file mode 100644 index dca0b370..00000000 --- a/examples/resource.rs +++ /dev/null @@ -1,81 +0,0 @@ -//! examples/resource.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}; - use lm3s6965::Interrupt; - - #[shared] - struct Shared {} - - #[local] - struct Local { - local_to_uart0: i64, - local_to_uart1: i64, - } - - #[init] - fn init(_: init::Context) -> (Shared, Local, init::Monotonics) { - rtic::pend(Interrupt::UART0); - rtic::pend(Interrupt::UART1); - - ( - Shared {}, - // initial values for the `#[local]` resources - Local { - local_to_uart0: 0, - local_to_uart1: 0, - }, - init::Monotonics(), - ) - } - - // `#[local]` resources cannot be accessed from this context - #[idle] - fn idle(_cx: idle::Context) -> ! { - debug::exit(debug::EXIT_SUCCESS); - - // error: no `local` field in `idle::Context` - // _cx.local.local_to_uart0 += 1; - - // error: no `local` field in `idle::Context` - // _cx.local.local_to_uart1 += 1; - - loop { - cortex_m::asm::nop(); - } - } - - // `local_to_uart0` can only be accessed from this context - // defaults to priority 1 - #[task(binds = UART0, local = [local_to_uart0])] - fn uart0(cx: uart0::Context) { - *cx.local.local_to_uart0 += 1; - let local_to_uart0 = cx.local.local_to_uart0; - - // error: no `local_to_uart1` field in `uart0::LocalResources` - // cx.local.local_to_uart1 += 1; - - hprintln!("UART0: local_to_uart0 = {}", local_to_uart0).unwrap(); - } - - // `shared` can only be accessed from this context - // explicitly set to priority 2 - #[task(binds = UART1, local = [local_to_uart1], priority = 2)] - fn uart1(cx: uart1::Context) { - *cx.local.local_to_uart1 += 1; - let local_to_uart1 = cx.local.local_to_uart1; - - // error: no `local_to_uart0` field in `uart1::LocalResources` - // cx.local.local_to_uart0 += 1; - - hprintln!("UART1: local_to_uart1 = {}", local_to_uart1).unwrap(); - } -} |