aboutsummaryrefslogtreecommitdiff
path: root/src/examples
diff options
context:
space:
mode:
authorGravatar Jorge Aparicio <jorge@japaric.io> 2017-07-29 00:34:00 -0500
committerGravatar Jorge Aparicio <jorge@japaric.io> 2017-07-29 00:46:38 -0500
commit2d80f3631bc3bf382ae24c25dbf8ff33af2ad430 (patch)
tree549db01071e63ac232ab5781771fbb3993a9d822 /src/examples
parente85d6e53c89cd1ea1da8826778c5a74154fb651d (diff)
downloadrtic-release/v0.1.tar.gz
rtic-release/v0.1.tar.zst
rtic-release/v0.1.zip
update examplesrelease/v0.1
Diffstat (limited to 'src/examples')
-rw-r--r--src/examples/_1_one_task.rs19
-rw-r--r--src/examples/_2_two_tasks.rs4
-rw-r--r--src/examples/_3_preemption.rs8
-rw-r--r--src/examples/_4_nested.rs14
-rw-r--r--src/examples/_6_full_syntax.rs1
5 files changed, 17 insertions, 29 deletions
diff --git a/src/examples/_1_one_task.rs b/src/examples/_1_one_task.rs
index 1bccc219..614db2aa 100644
--- a/src/examples/_1_one_task.rs
+++ b/src/examples/_1_one_task.rs
@@ -2,7 +2,6 @@
//!
//! ```
//! #![deny(unsafe_code)]
-//! #![feature(const_fn)]
//! #![feature(proc_macro)]
//! #![no_std]
//!
@@ -36,17 +35,6 @@
//! // Path to the task handler
//! path: sys_tick,
//!
-//! // This is the priority of the task.
-//! //
-//! // 1 is the lowest priority a task can have, and the maximum
-//! // priority is determined by the number of priority bits the device
-//! // has. `stm32f103xx` has 4 priority bits so 16 is the maximum valid
-//! // value.
-//! //
-//! // You can omit this field. If you do the priority is assumed to be
-//! // 1.
-//! priority: 1,
-//!
//! // These are the resources this task has access to.
//! //
//! // A resource can be a peripheral like `GPIOC` or a static variable
@@ -56,7 +44,10 @@
//! }
//! }
//!
-//! fn init(p: init::Peripherals, _r: init::Resources) {
+//! fn init(p: init::Peripherals, r: init::Resources) {
+//! // `init` can modify all the `resources` declared in `app!`
+//! r.ON;
+//!
//! // power on GPIOC
//! p.RCC.apb2enr.modify(|_, w| w.iopcen().enabled());
//!
@@ -83,7 +74,7 @@
//! //
//! // `_t` is the preemption threshold token. We won't use it in this program.
//! //
-//! // `r` is the set of resources this task has access to. `TIMER0_A1::Resources`
+//! // `r` is the set of resources this task has access to. `SYS_TICK::Resources`
//! // has one field per resource declared in `app!`.
//! fn sys_tick(_t: &mut Threshold, r: SYS_TICK::Resources) {
//! // toggle state
diff --git a/src/examples/_2_two_tasks.rs b/src/examples/_2_two_tasks.rs
index 451293cf..5db991b0 100644
--- a/src/examples/_2_two_tasks.rs
+++ b/src/examples/_2_two_tasks.rs
@@ -1,9 +1,7 @@
//! Two tasks running at the *same* priority with access to the same resource
//!
//! ```
-//!
//! #![deny(unsafe_code)]
-//! #![feature(const_fn)]
//! #![feature(proc_macro)]
//! #![no_std]
//!
@@ -33,8 +31,6 @@
//! },
//! }
//!
-//! // When data resources are declared in the top `resources` field, `init` will
-//! // have full access to them
//! fn init(_p: init::Peripherals, _r: init::Resources) {
//! // ..
//! }
diff --git a/src/examples/_3_preemption.rs b/src/examples/_3_preemption.rs
index 1f6b244b..9dc8983b 100644
--- a/src/examples/_3_preemption.rs
+++ b/src/examples/_3_preemption.rs
@@ -2,7 +2,6 @@
//!
//! ```
//! #![deny(unsafe_code)]
-//! #![feature(const_fn)]
//! #![feature(proc_macro)]
//! #![no_std]
//!
@@ -60,8 +59,11 @@
//! // As this task runs at lower priority it needs a critical section to
//! // prevent `sys_tick` from preempting it while it modifies this resource
//! // data. The critical section is required to prevent data races which can
-//! // lead to undefined behavior
-//! r.COUNTER.claim_mut(t, |counter, _t| { **counter += 1; });
+//! // lead to undefined behavior.
+//! r.COUNTER.claim_mut(t, |counter, _t| {
+//! // `claim_mut` creates a critical section
+//! **counter += 1;
+//! });
//!
//! // ..
//! }
diff --git a/src/examples/_4_nested.rs b/src/examples/_4_nested.rs
index d0306210..94af0bee 100644
--- a/src/examples/_4_nested.rs
+++ b/src/examples/_4_nested.rs
@@ -5,7 +5,6 @@
//!
//! ```
//! #![deny(unsafe_code)]
-//! #![feature(const_fn)]
//! #![feature(proc_macro)]
//! #![no_std]
//!
@@ -61,13 +60,14 @@
//! }
//! }
//!
-//! fn exti0(t: &mut Threshold, r: EXTI0::Resources) {
+//! #[allow(non_snake_case)]
+//! fn exti0(
+//! t: &mut Threshold,
+//! EXTI0::Resources { mut LOW, mut HIGH }: EXTI0::Resources,
+//! ) {
//! // Because this task has a priority of 1 the preemption threshold `t` also
//! // starts at 1
//!
-//! let mut low = r.LOW;
-//! let mut high = r.HIGH;
-//!
//! // B
//! rtfm::bkpt();
//!
@@ -75,7 +75,7 @@
//! rtfm::set_pending(Interrupt::EXTI1); // ~> exti1
//!
//! // A claim creates a critical section
-//! low.claim_mut(t, |_low, t| {
+//! LOW.claim_mut(t, |_low, t| {
//! // This claim increases the preemption threshold to 2
//! //
//! // 2 is just high enough to not race with task `exti1` for access to the
@@ -96,7 +96,7 @@
//! rtfm::bkpt();
//!
//! // Claims can be nested
-//! high.claim_mut(t, |_high, _| {
+//! HIGH.claim_mut(t, |_high, _| {
//! // This claim increases the preemption threshold to 3
//!
//! // Now `exti2` can't preempt this task
diff --git a/src/examples/_6_full_syntax.rs b/src/examples/_6_full_syntax.rs
index 449bee6c..80520657 100644
--- a/src/examples/_6_full_syntax.rs
+++ b/src/examples/_6_full_syntax.rs
@@ -2,7 +2,6 @@
//!
//! ```
//! #![deny(unsafe_code)]
-//! #![feature(const_fn)]
//! #![feature(proc_macro)]
//! #![no_std]
//!