diff options
author | 2019-08-21 10:17:27 +0200 | |
---|---|---|
committer | 2019-08-21 10:17:27 +0200 | |
commit | 07b2b4d83078d0fd260d5f0812e8d5a34d02b793 (patch) | |
tree | dba2a8e8316e8cd868ccb7b46a80d63c5f61a224 /examples/preempt.rs | |
parent | 0e146f8d1142672725b6abb38478f503a9261c80 (diff) | |
download | rtic-07b2b4d83078d0fd260d5f0812e8d5a34d02b793.tar.gz rtic-07b2b4d83078d0fd260d5f0812e8d5a34d02b793.tar.zst rtic-07b2b4d83078d0fd260d5f0812e8d5a34d02b793.zip |
doc up
Diffstat (limited to 'examples/preempt.rs')
-rw-r--r-- | examples/preempt.rs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/examples/preempt.rs b/examples/preempt.rs new file mode 100644 index 00000000..9f1b2a5c --- /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(); + } +}; |