From 4357d8be1511d28ed16f76439c9af60e78504b28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Tj=C3=A4der?= Date: Tue, 14 Dec 2021 22:46:15 +0100 Subject: Docs: By-example --- book/en/src/by-example/app_task.md | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'book/en/src/by-example/app_task.md') diff --git a/book/en/src/by-example/app_task.md b/book/en/src/by-example/app_task.md index a5c8b17..9716004 100644 --- a/book/en/src/by-example/app_task.md +++ b/book/en/src/by-example/app_task.md @@ -1,7 +1,18 @@ # Defining tasks with `#[task]` -Tasks, defined with `#[task]`, are the main mechanism of getting work done in RTIC. Every task can be spawned, now or later, be sent messages (message passing) and be given priorities for preemptive multitasking. +Tasks, defined with `#[task]`, are the main mechanism of getting work done in RTIC. -There are two kinds of tasks, software tasks and hardware tasks, and the difference is that hardware tasks 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 the UART's RX interrupt the task will run every time a character is received. +Tasks can + +* Be spawned (now or in the future) +* Receive messages (message passing) +* 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 an UART RX interrupt the task will run every +time this interrupt triggers, usually when a character is received. In the coming pages we will explore both tasks and the different options available. -- cgit v1.2.3