diff options
Diffstat (limited to 'docs/modules/ROOT')
| -rw-r--r-- | docs/modules/ROOT/nav.adoc | 4 | ||||
| -rw-r--r-- | docs/modules/ROOT/pages/index.adoc | 24 | ||||
| -rw-r--r-- | docs/modules/ROOT/pages/nrf.adoc | 3 | ||||
| -rw-r--r-- | docs/modules/ROOT/pages/runtime.adoc | 3 | ||||
| -rw-r--r-- | docs/modules/ROOT/pages/stm32.adoc | 3 | ||||
| -rw-r--r-- | docs/modules/ROOT/pages/traits.adoc | 3 |
6 files changed, 40 insertions, 0 deletions
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc new file mode 100644 index 000000000..228ead788 --- /dev/null +++ b/docs/modules/ROOT/nav.adoc | |||
| @@ -0,0 +1,4 @@ | |||
| 1 | * xref:runtime.adoc[Runtime] | ||
| 2 | * xref:traits.adoc[Traits] | ||
| 3 | * xref:nrf.adoc[Nordic nRF HAL] | ||
| 4 | * xref:stm32.adoc[STM32 HAL] | ||
diff --git a/docs/modules/ROOT/pages/index.adoc b/docs/modules/ROOT/pages/index.adoc new file mode 100644 index 000000000..5bc35ef43 --- /dev/null +++ b/docs/modules/ROOT/pages/index.adoc | |||
| @@ -0,0 +1,24 @@ | |||
| 1 | = Embassy | ||
| 2 | |||
| 3 | Embassy is a project to make async/await a first-class option for embedded development. | ||
| 4 | |||
| 5 | == Traits and types | ||
| 6 | |||
| 7 | `embassy` provides a set of traits and types specifically designed for `async` usage. | ||
| 8 | |||
| 9 | * `embassy::io`: `AsyncBufRead`, `AsyncWrite`. Traits for byte-stream IO, essentially `no_std` compatible versions of `futures::io`. | ||
| 10 | * `embassy::traits::flash`: Flash device trait. | ||
| 11 | * `embassy::time`: `Clock` and `Alarm` traits. Std-like `Duration` and `Instant`. | ||
| 12 | * More traits for SPI, I2C, UART async HAL coming soon. | ||
| 13 | |||
| 14 | == Executor | ||
| 15 | |||
| 16 | The `embassy::executor` module provides an async/await executor designed for embedded usage. | ||
| 17 | |||
| 18 | * No `alloc`, no heap needed. Task futures are statically allocated. | ||
| 19 | * No "fixed capacity" data structures, executor works with 1 or 1000 tasks without needing config/tuning. | ||
| 20 | * Integrated timer queue: sleeping is easy, just do `Timer::after(Duration::from_secs(1)).await;`. | ||
| 21 | * No busy-loop polling: CPU sleeps when there's no work to do, using interrupts or `WFE/SEV`. | ||
| 22 | * Efficient polling: a wake will only poll the woken task, not all of them. | ||
| 23 | * Fair: a task can't monopolize CPU time even if it's constantly being woken. All other tasks get a chance to run before a given task gets polled for the second time. | ||
| 24 | * Creating multiple executor instances is supported, to run tasks with multiple priority levels. This allows higher-priority tasks to preempt lower-priority tasks. | ||
diff --git a/docs/modules/ROOT/pages/nrf.adoc b/docs/modules/ROOT/pages/nrf.adoc new file mode 100644 index 000000000..21c388f61 --- /dev/null +++ b/docs/modules/ROOT/pages/nrf.adoc | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | = Embassy nRF HAL | ||
| 2 | |||
| 3 | TODO | ||
diff --git a/docs/modules/ROOT/pages/runtime.adoc b/docs/modules/ROOT/pages/runtime.adoc new file mode 100644 index 000000000..2704f298b --- /dev/null +++ b/docs/modules/ROOT/pages/runtime.adoc | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | = Embassy runtime | ||
| 2 | |||
| 3 | TODO | ||
diff --git a/docs/modules/ROOT/pages/stm32.adoc b/docs/modules/ROOT/pages/stm32.adoc new file mode 100644 index 000000000..328f69e2a --- /dev/null +++ b/docs/modules/ROOT/pages/stm32.adoc | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | = Embassy STM32 HAL | ||
| 2 | |||
| 3 | TODO | ||
diff --git a/docs/modules/ROOT/pages/traits.adoc b/docs/modules/ROOT/pages/traits.adoc new file mode 100644 index 000000000..843cc293e --- /dev/null +++ b/docs/modules/ROOT/pages/traits.adoc | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | = Embassy Traits | ||
| 2 | |||
| 3 | TODO | ||
