diff options
author | 2017-07-29 00:34:00 -0500 | |
---|---|---|
committer | 2017-07-29 00:46:38 -0500 | |
commit | 2d80f3631bc3bf382ae24c25dbf8ff33af2ad430 (patch) | |
tree | 549db01071e63ac232ab5781771fbb3993a9d822 /src/examples | |
parent | e85d6e53c89cd1ea1da8826778c5a74154fb651d (diff) | |
download | rtic-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.rs | 19 | ||||
-rw-r--r-- | src/examples/_2_two_tasks.rs | 4 | ||||
-rw-r--r-- | src/examples/_3_preemption.rs | 8 | ||||
-rw-r--r-- | src/examples/_4_nested.rs | 14 | ||||
-rw-r--r-- | src/examples/_6_full_syntax.rs | 1 |
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] //! |