mirror of
https://github.com/rtic-rs/rtic.git
synced 2025-12-20 06:45:36 +01:00
Archive app_task.md
This commit is contained in:
parent
5b705ddaf4
commit
03b16a3a2d
1 changed files with 0 additions and 0 deletions
|
|
@ -1,23 +0,0 @@
|
|||
<!-- 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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue