aboutsummaryrefslogtreecommitdiff
path: root/examples/multilock.rs
diff options
context:
space:
mode:
authorGravatar Emil Fresk <emil.fresk@gmail.com> 2021-09-22 13:22:45 +0200
committerGravatar Emil Fresk <emil.fresk@gmail.com> 2021-09-23 16:11:04 +0200
commitb71df58f2fb4ed85d4c8cf806d5837ce63c73f31 (patch)
treede4cbe4b43d399d4dcf2021c33225ccd00627434 /examples/multilock.rs
parentc8621d78b9b1c0c67dff31404ade873a9d7b426e (diff)
downloadrtic-b71df58f2fb4ed85d4c8cf806d5837ce63c73f31.tar.gz
rtic-b71df58f2fb4ed85d4c8cf806d5837ce63c73f31.tar.zst
rtic-b71df58f2fb4ed85d4c8cf806d5837ce63c73f31.zip
The great docs update
Diffstat (limited to 'examples/multilock.rs')
-rw-r--r--examples/multilock.rs46
1 files changed, 8 insertions, 38 deletions
diff --git a/examples/multilock.rs b/examples/multilock.rs
index 7d8d7d24..d99bae69 100644
--- a/examples/multilock.rs
+++ b/examples/multilock.rs
@@ -1,6 +1,4 @@
//! examples/mutlilock.rs
-//!
-//! The multi-lock feature example.
#![deny(unsafe_code)]
#![deny(warnings)]
@@ -9,10 +7,9 @@
use panic_semihosting as _;
-#[rtic::app(device = lm3s6965)]
+#[rtic::app(device = lm3s6965, dispatchers = [GPIOA])]
mod app {
use cortex_m_semihosting::{debug, hprintln};
- use lm3s6965::Interrupt;
#[shared]
struct Shared {
@@ -26,7 +23,7 @@ mod app {
#[init]
fn init(_: init::Context) -> (Shared, Local, init::Monotonics) {
- rtic::pend(Interrupt::GPIOA);
+ locks::spawn().unwrap();
(
Shared {
@@ -40,47 +37,20 @@ mod app {
}
// when omitted priority is assumed to be `1`
- #[task(binds = GPIOA, shared = [shared1, shared2, shared3])]
+ #[task(shared = [shared1, shared2, shared3])]
fn locks(c: locks::Context) {
- let mut s1 = c.shared.shared1;
- let mut s2 = c.shared.shared2;
- let mut s3 = c.shared.shared3;
-
- hprintln!("Multiple single locks").unwrap();
- s1.lock(|s1| {
- s2.lock(|s2| {
- s3.lock(|s3| {
- *s1 += 1;
- *s2 += 1;
- *s3 += 1;
-
- hprintln!(
- "Multiple single locks, s1: {}, s2: {}, s3: {}",
- *s1,
- *s2,
- *s3
- )
- .unwrap();
- })
- })
- });
-
- hprintln!("Multilock!").unwrap();
+ let s1 = c.shared.shared1;
+ let s2 = c.shared.shared2;
+ let s3 = c.shared.shared3;
(s1, s2, s3).lock(|s1, s2, s3| {
*s1 += 1;
*s2 += 1;
*s3 += 1;
- hprintln!(
- "Multiple single locks, s1: {}, s2: {}, s3: {}",
- *s1,
- *s2,
- *s3
- )
- .unwrap();
+ hprintln!("Multiple locks, s1: {}, s2: {}, s3: {}", *s1, *s2, *s3).unwrap();
});
- debug::exit(debug::EXIT_SUCCESS);
+ debug::exit(debug::EXIT_SUCCESS); // Exit QEMU simulator
}
}