From 07b2b4d83078d0fd260d5f0812e8d5a34d02b793 Mon Sep 17 00:00:00 2001 From: Jorge Aparicio Date: Wed, 21 Aug 2019 10:17:27 +0200 Subject: doc up --- examples/preempt.rs | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 examples/preempt.rs (limited to 'examples/preempt.rs') diff --git a/examples/preempt.rs b/examples/preempt.rs new file mode 100644 index 0000000..9f1b2a5 --- /dev/null +++ b/examples/preempt.rs @@ -0,0 +1,37 @@ +//! examples/preempt.rs + +#![no_main] +#![no_std] + +use cortex_m_semihosting::{debug, hprintln}; +use lm3s6965::Interrupt; +use panic_semihosting as _; +use rtfm::app; + +#[app(device = lm3s6965)] +const APP: () = { + #[init] + fn init(_: init::Context) { + rtfm::pend(Interrupt::UART0); + } + + #[task(binds = UART0, priority = 1)] + fn uart0(_: uart0::Context) { + hprintln!("UART0 - start").unwrap(); + rtfm::pend(Interrupt::UART2); + hprintln!("UART0 - end").unwrap(); + debug::exit(debug::EXIT_SUCCESS); + } + + #[task(binds = UART1, priority = 2)] + fn uart1(_: uart1::Context) { + hprintln!(" UART1").unwrap(); + } + + #[task(binds = UART2, priority = 2)] + fn uart2(_: uart2::Context) { + hprintln!(" UART2 - start").unwrap(); + rtfm::pend(Interrupt::UART1); + hprintln!(" UART2 - end").unwrap(); + } +}; -- cgit v1.2.3