diff options
| author | datdenkikniet <jcdra1@gmail.com> | 2023-05-05 19:20:57 +0200 |
|---|---|---|
| committer | datdenkikniet <jcdra1@gmail.com> | 2023-05-11 19:20:58 +0200 |
| commit | 03b16a3a2d83af9b520fa5b5bad3ba76155f594d (patch) | |
| tree | d8aaa1a15cff00b76658b1ec05413570e5819e45 /book/en/archive | |
| parent | 5b705ddaf43fa131063af759990f4f2f870e83ad (diff) | |
Archive app_task.md
Diffstat (limited to 'book/en/archive')
| -rw-r--r-- | book/en/archive/by_example/app_task.md | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/book/en/archive/by_example/app_task.md b/book/en/archive/by_example/app_task.md new file mode 100644 index 0000000..b2731f6 --- /dev/null +++ b/book/en/archive/by_example/app_task.md @@ -0,0 +1,23 @@ +<!-- Should probably be removed --> + +# Defining tasks with `#[task]` + +Tasks, defined with `#[task]`, are the main mechanism of getting work done in RTIC. + +Tasks can + +* 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. + +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. |
