aboutsummaryrefslogtreecommitdiff
path: root/book/en/src/by-example/app_task.md
diff options
context:
space:
mode:
authorHenrik Tjäder <henrik@tjaders.com>2023-02-01 01:15:56 +0100
committerHenrik Tjäder <henrik@tjaders.com>2023-03-01 00:33:40 +0100
commit63f3d784fe519d248c89b64006dbc13d83e07360 (patch)
tree8be6e44f20126fac674bf213eba29f81d56285bd /book/en/src/by-example/app_task.md
parent8d46fb9cf9f2b9cdd14844672ad840d777739cb2 (diff)
Revert accidental removal of editorial changes
Diffstat (limited to 'book/en/src/by-example/app_task.md')
-rw-r--r--book/en/src/by-example/app_task.md15
1 files changed, 10 insertions, 5 deletions
diff --git a/book/en/src/by-example/app_task.md b/book/en/src/by-example/app_task.md
index e0c67ad..b2731f6 100644
--- a/book/en/src/by-example/app_task.md
+++ b/book/en/src/by-example/app_task.md
@@ -6,13 +6,18 @@ Tasks, defined with `#[task]`, are the main mechanism of getting work done in RT
Tasks can
-* Be spawned (now or in the future)
-* Receive messages (message passing)
-* Prioritized allowing preemptive multitasking
+* Be spawned (now or in the future, also by themselves)
+* Receive messages (passing messages between tasks)
+* Be prioritized, allowing preemptive multitasking
* Optionally bind to a hardware interrupt
-RTIC makes a distinction between “software tasks” and “hardware tasks”. Hardware tasks are tasks that are bound to a specific interrupt vector in the MCU while software tasks are not.
+RTIC makes a distinction between “software tasks” and “hardware tasks”.
-This means that if a hardware task is bound to an UART RX interrupt the task will run every time this interrupt triggers, usually when a character is received.
+*Hardware tasks* are tasks that are bound to a specific interrupt vector in the MCU while software tasks are not.
+
+This means that if a hardware task is bound to, lets say, a UART RX interrupt, the task will be run every
+time that interrupt triggers, usually when a character is received.
+
+*Software tasks* are explicitly spawned in a task, either immediately or using the Monotonic timer mechanism.
In the coming pages we will explore both tasks and the different options available.