diff options
| author | Franz Dietrich <dietrich@teilgedanken.de> | 2024-04-04 00:01:46 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-03 22:01:46 +0000 |
| commit | 53ed7bf7edb21180cb18c0bf6a7dbe6168331879 (patch) | |
| tree | e7b86edf26aa3bfcf6af4dd825d67a627e8c1252 /book/en/src/by-example/app_idle.md | |
| parent | fa2a5b449f1746b4b3bb3da08dab532ee24ba286 (diff) | |
fix included examples and markdown(book) (#912)
* fix included examples and markdown(book)
fixes: #911
* fix footnote pre_init
* more example link updates
* Restore pool example name
* Example: pool: Upgrade to heapless v0.8
* Example: pool: thumbv6 unsupported: wild cfg-if
Experiment with multi-backend example contained in the example
* Example: lm3s6965: Updated cargo.lock
* Book: Use cargo xtask for by-example
* Docs: Contributing: cargo xtask
---------
Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
Diffstat (limited to 'book/en/src/by-example/app_idle.md')
| -rw-r--r-- | book/en/src/by-example/app_idle.md | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/book/en/src/by-example/app_idle.md b/book/en/src/by-example/app_idle.md index c0b4139..ea193a2 100644 --- a/book/en/src/by-example/app_idle.md +++ b/book/en/src/by-example/app_idle.md @@ -1,8 +1,8 @@ # The background task `#[idle]` -A function marked with the `idle` attribute can optionally appear in the module. This becomes the special *idle task* and must have signature `fn(idle::Context) -> !`. +A function marked with the `idle` attribute can optionally appear in the module. This becomes the special _idle task_ and must have signature `fn(idle::Context) -> !`. -When present, the runtime will execute the `idle` task after `init`. Unlike `init`, `idle` will run *with interrupts enabled* and must never return, as the `-> !` function signature indicates. +When present, the runtime will execute the `idle` task after `init`. Unlike `init`, `idle` will run _with interrupts enabled_ and must never return, as the `-> !` function signature indicates. [The Rust type `!` means “never”][nevertype]. [nevertype]: https://doc.rust-lang.org/core/primitive.never.html @@ -11,25 +11,25 @@ Like in `init`, locally declared resources will have `'static` lifetimes that ar The example below shows that `idle` runs after `init`. -``` rust,noplayground -{{#include ../../../../rtic/examples/idle.rs}} +```rust,noplayground +{{#include ../../../../examples/lm3s6965/examples/idle.rs}} ``` -``` console -$ cargo run --target thumbv7m-none-eabi --example idle +```console +$ cargo xtask qemu --verbose --example idle ``` -``` console -{{#include ../../../../rtic/ci/expected/idle.run}} +```console +{{#include ../../../../ci/expected/lm3s6965/idle.run}} ``` By default, the RTIC `idle` task does not try to optimize for any specific targets. A common useful optimization is to enable the [SLEEPONEXIT] and allow the MCU to enter sleep when reaching `idle`. ->**Caution**: some hardware unless configured disables the debug unit during sleep mode. +> **Caution**: some hardware unless configured disables the debug unit during sleep mode. > ->Consult your hardware specific documentation as this is outside the scope of RTIC. +> Consult your hardware specific documentation as this is outside the scope of RTIC. The following example shows how to enable sleep by setting the [`SLEEPONEXIT`][SLEEPONEXIT] and providing a custom `idle` task replacing the default [`nop()`][NOP] with [`wfi()`][WFI]. @@ -38,16 +38,16 @@ The following example shows how to enable sleep by setting the [WFI]: https://developer.arm.com/documentation/dui0662/b/The-Cortex-M0--Instruction-Set/Miscellaneous-instructions/WFI [NOP]: https://developer.arm.com/documentation/dui0662/b/The-Cortex-M0--Instruction-Set/Miscellaneous-instructions/NOP -``` rust,noplayground -{{#include ../../../../rtic/examples/idle-wfi.rs}} +```rust,noplayground +{{#include ../../../../examples/lm3s6965/examples/idle-wfi.rs}} ``` -``` console -$ cargo run --target thumbv7m-none-eabi --example idle-wfi +```console +$ cargo xtask qemu --verbose --example idle-wfi ``` -``` console -{{#include ../../../../rtic/ci/expected/idle-wfi.run}} +```console +{{#include ../../../../ci/expected/lm3s6965/idle-wfi.run}} ``` -> **Notice**: The `idle` task cannot be used together with *software* tasks running at priority zero. The reason is that `idle` is running as a non-returning Rust function at priority zero. Thus there would be no way for an executor at priority zero to give control to *software* tasks at the same priority. +> **Notice**: The `idle` task cannot be used together with _software_ tasks running at priority zero. The reason is that `idle` is running as a non-returning Rust function at priority zero. Thus there would be no way for an executor at priority zero to give control to _software_ tasks at the same priority. |
