The great docs update

This commit is contained in:
Emil Fresk 2021-09-22 13:22:45 +02:00
parent c8621d78b9
commit b71df58f2f
106 changed files with 1286 additions and 1429 deletions

View file

@ -0,0 +1,24 @@
# Hardware tasks
To declare interrupt handlers the `#[task]` attribute takes a `binds = InterruptName` argument whose
value is the name of the interrupt to which the handler will be bound to; the
function used with this attribute becomes the interrupt handler. Within the
framework these type of tasks are referred to as *hardware* tasks, because they
start executing in reaction to a hardware event.
Providing an interrupt name that does not exist will cause a compile error to help with accidental
errors.
The example below demonstrates the use of the `#[task]` attribute to declare an
interrupt handler. Like in the case of `#[init]` and `#[idle]` local `static
mut` variables are safe to use within a hardware task.
``` rust
{{#include ../../../../examples/hardware.rs}}
```
``` console
$ cargo run --target thumbv7m-none-eabi --example hardware
{{#include ../../../../ci/expected/hardware.run}}
```