aboutsummaryrefslogtreecommitdiff
path: root/book/en/src/by-example/app_priorities.md
diff options
context:
space:
mode:
Diffstat (limited to 'book/en/src/by-example/app_priorities.md')
-rw-r--r--book/en/src/by-example/app_priorities.md30
1 files changed, 9 insertions, 21 deletions
diff --git a/book/en/src/by-example/app_priorities.md b/book/en/src/by-example/app_priorities.md
index 8cee749..f03ebf7 100644
--- a/book/en/src/by-example/app_priorities.md
+++ b/book/en/src/by-example/app_priorities.md
@@ -4,23 +4,18 @@
The `priority` argument declares the static priority of each `task`.
-For Cortex-M, tasks can have priorities in the range `1..=(1 << NVIC_PRIO_BITS)`
-where `NVIC_PRIO_BITS` is a constant defined in the `device` crate.
+For Cortex-M, tasks can have priorities in the range `1..=(1 << NVIC_PRIO_BITS)` where `NVIC_PRIO_BITS` is a constant defined in the `device` crate.
-Omitting the `priority` argument the task priority defaults to `1`.
-The `idle` task has a non-configurable static priority of `0`, the lowest priority.
+Omitting the `priority` argument the task priority defaults to `1`. The `idle` task has a non-configurable static priority of `0`, the lowest priority.
> A higher number means a higher priority in RTIC, which is the opposite from what
> Cortex-M does in the NVIC peripheral.
> Explicitly, this means that number `10` has a **higher** priority than number `9`.
-The highest static priority task takes precedence when more than one
-task are ready to execute.
+The highest static priority task takes precedence when more than one task are ready to execute.
The following scenario demonstrates task prioritization:
-Spawning a higher priority task A during execution of a lower priority task B suspends
-task B. Task A has higher priority thus preempting task B which gets suspended
-until task A completes execution. Thus, when task A completes task B resumes execution.
+Spawning a higher priority task A during execution of a lower priority task B pends task A. Task A has higher priority thus preempting task B which gets suspended until task A completes execution. Thus, when task A completes task B resumes execution.
```text
Task Priority
@@ -39,23 +34,17 @@ Task Priority
The following example showcases the priority based scheduling of tasks:
``` rust
-{{#include ../../../../examples/preempt.rs}}
+{{#include ../../../../rtic/examples/preempt.rs}}
```
``` console
$ cargo run --target thumbv7m-none-eabi --example preempt
-{{#include ../../../../ci/expected/preempt.run}}
+{{#include ../../../../rtic/ci/expected/preempt.run}}
```
-Note that the task `bar` does *not* preempt task `baz` because its priority
-is the *same* as `baz`'s. The higher priority task `bar` runs before `foo`
-when `baz`returns. When `bar` returns `foo` can resume.
+Note that the task `bar` does *not* preempt task `baz` because its priority is the *same* as `baz`'s. The higher priority task `bar` runs before `foo` when `baz`returns. When `bar` returns `foo` can resume.
-One more note about priorities: choosing a priority higher than what the device
-supports will result in a compilation error.
-
-The error is cryptic due to limitations in the Rust language
-if `priority = 9` for task `uart0_interrupt` in `example/common.rs` this looks like:
+One more note about priorities: choosing a priority higher than what the device supports will result in a compilation error. The error is cryptic due to limitations in the Rust language, if `priority = 9` for task `uart0_interrupt` in `example/common.rs` this looks like:
```text
error[E0080]: evaluation of constant value failed
@@ -68,5 +57,4 @@ if `priority = 9` for task `uart0_interrupt` in `example/common.rs` this looks l
```
-The error message incorrectly points to the starting point of the macro, but at least the
-value subtracted (in this case 9) will suggest which task causes the error.
+The error message incorrectly points to the starting point of the macro, but at least the value subtracted (in this case 9) will suggest which task causes the error.