From d769e562c04261d86916f53c83e44d1a51f59c76 Mon Sep 17 00:00:00 2001 From: Ulf Lilleengen Date: Tue, 16 Aug 2022 11:23:04 +0200 Subject: [PATCH] Rewrite documentation using correct module names * Remove traits section now that we have embedded-hal-async and refer to it. * Explanation that embassy is multiple things. * Bootloader description image --- docs/modules/ROOT/images/bootloader_flash.png | Bin 0 -> 32147 bytes docs/modules/ROOT/nav.adoc | 12 +++++------ .../modules/ROOT/pages/basic_application.adoc | 20 +++++++++--------- docs/modules/ROOT/pages/bootloader.adoc | 5 ++++- docs/modules/ROOT/pages/getting_started.adoc | 6 ++---- docs/modules/ROOT/pages/hal.adoc | 5 +++-- docs/modules/ROOT/pages/index.adoc | 18 ++++++++++++++-- docs/modules/ROOT/pages/runtime.adoc | 4 ++-- docs/modules/ROOT/pages/traits.adoc | 8 ------- 9 files changed, 43 insertions(+), 35 deletions(-) create mode 100644 docs/modules/ROOT/images/bootloader_flash.png delete mode 100644 docs/modules/ROOT/pages/traits.adoc diff --git a/docs/modules/ROOT/images/bootloader_flash.png b/docs/modules/ROOT/images/bootloader_flash.png new file mode 100644 index 0000000000000000000000000000000000000000..635783b05cd18b70f02c7d69c1c9faef7927b4bc GIT binary patch literal 32147 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

h==HTGDIg#cn#;B;?><8|tUW37#5{b@(GdnV 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 literal 0 HcmV?d00001 diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc index a45da195..86f2996f 100644 --- a/docs/modules/ROOT/nav.adoc +++ b/docs/modules/ROOT/nav.adoc @@ -1,10 +1,10 @@ -* xref:runtime.adoc[Runtime] -* xref:traits.adoc[APIs] -* xref:hal.adoc[Hardware Abstraction Layer] -** xref:nrf.adoc[nRF] -** xref:stm32.adoc[STM32] -* xref:bootloader.adoc[Bootloader] * xref:getting_started.adoc[Getting started] ** xref:basic_application.adoc[Basic application] ** xref:layer_by_layer.adoc[Layer by Layer] +* xref:runtime.adoc[Executor] +* xref:hal.adoc[HAL] +** xref:nrf.adoc[nRF] +** xref:stm32.adoc[STM32] +* xref:bootloader.adoc[Bootloader] + * xref:examples.adoc[Examples] diff --git a/docs/modules/ROOT/pages/basic_application.adoc b/docs/modules/ROOT/pages/basic_application.adoc index a8875aa9..4dc4a635 100644 --- a/docs/modules/ROOT/pages/basic_application.adoc +++ b/docs/modules/ROOT/pages/basic_application.adoc @@ -21,7 +21,7 @@ Then, what follows are some declarations on how to deal with panics and faults. [source,rust] ---- -include::example$basic/src/main.rs[lines="5..6"] +include::example$basic/src/main.rs[lines="11..12"] ---- === Task declaration @@ -30,7 +30,7 @@ After a bit of import declaration, the tasks run by the application should be de [source,rust] ---- -include::example$basic/src/main.rs[lines="18..27"] +include::example$basic/src/main.rs[lines="13..22"] ---- An embassy task must be declared `async`, and may NOT take generic arguments. In this case, we are handed the LED that should be blinked and the interval of the blinking. @@ -39,32 +39,32 @@ NOTE: Notice that there is no busy waiting going on in this task. It is using th === Main -The main entry point of an Embassy application is defined using the `#[embassy::main]` macro. The entry point is also required to take a `Spawner` and a `Peripherals` argument. +The main entry point of an Embassy application is defined using the `#[embassy_executor::main]` macro. The entry point is also required to take a `Spawner` and a `Peripherals` argument. -The `Spawner` is the way the main application spawns other tasks. The `Peripherals` type holds all peripherals that the application may use. In this case, we want to configure one of the pins as a GPIO output driving the LED: +The `Spawner` is the way the main application spawns other tasks. The `Peripherals` type comes from the HAL and holds all peripherals that the application may use. In this case, we want to configure one of the pins as a GPIO output driving the LED: [source,rust] ---- -include::example$basic/src/main.rs[lines="28..-1"] +include::example$basic/src/main.rs[lines="23..-1"] ---- -`#[embassy::main]` takes an optional `config` paramter specifying a function that returns an instance of HAL's `Config` struct. For example: +`#[embassy_executor::main]` takes an optional `config` parameter specifying a function that returns an instance of HAL's `Config` struct. For example: ```rust fn embassy_config() -> embassy_nrf::config::Config { embassy_nrf::config::Config::default() } -#[embassy::main(config = "embassy_config()")] -async fn main(_spawner: embassy::executor::Spawner, p: embassy_nrf::Peripherals) { +#[embassy_executor::main(config = "embassy_config()")] +async fn main(_spawner: Spawner, p: embassy_nrf::Peripherals) { // ... } ``` What happens when the `blinker` task have been spawned and main returns? Well, the main entry point is actually just like any other task, except that you can only have one and it takes some specific type arguments. The magic lies within the `#[embassy::main]` macro. The macro does the following: -. Creates an Embassy Executor instance -. Initializes the microcontroller to get the `Peripherals` +. Creates an Embassy Executor +. Initializes the microcontroller HAL to get the `Peripherals` . Defines a main task for the entry point . Runs the executor spawning the main task diff --git a/docs/modules/ROOT/pages/bootloader.adoc b/docs/modules/ROOT/pages/bootloader.adoc index 3df2daf5..ae92e9d5 100644 --- a/docs/modules/ROOT/pages/bootloader.adoc +++ b/docs/modules/ROOT/pages/bootloader.adoc @@ -20,7 +20,10 @@ In general, the bootloader works on any platform that implements the `embedded-s == Design -The bootloader divides the storage into 4 main partitions, configured by a linker script: +image::bootloader_flash.png[Bootloader flash layout] + +The bootloader divides the storage into 4 main partitions, configurable when creating the bootloader +instance or via linker scripts: * BOOTLOADER - Where the bootloader is placed. The bootloader itself consumes about 8kB of flash. * ACTIVE - Where the main application is placed. The bootloader will attempt to load the application at the start of this partition. This partition is only written to by the bootloader. diff --git a/docs/modules/ROOT/pages/getting_started.adoc b/docs/modules/ROOT/pages/getting_started.adoc index 23102b3b..f3492a3d 100644 --- a/docs/modules/ROOT/pages/getting_started.adoc +++ b/docs/modules/ROOT/pages/getting_started.adoc @@ -46,15 +46,13 @@ You can run an example by opening a terminal and entering the following commands [source, bash] ---- cd examples/nrf -DEFMT_LOG=info cargo run --bin blinky --release +cargo run --bin blinky --release ---- -IMPORTANT: The DEFMT_LOG environment variable controls the example log verbosity. If you do not specify it, you will not see anything logged to the console. - == Whats next? Congratulations, you have your first Embassy application running! Here are some alternatives on where to go from here: -* Read more about the xref:runtime.adoc[runtime]. +* Read more about the xref:runtime.adoc[executor]. * Read more about the xref:hal.adoc[HAL]. * Start xref:basic_application.adoc[writing your application]. diff --git a/docs/modules/ROOT/pages/hal.adoc b/docs/modules/ROOT/pages/hal.adoc index 0b15e2fc..de4ab33b 100644 --- a/docs/modules/ROOT/pages/hal.adoc +++ b/docs/modules/ROOT/pages/hal.adoc @@ -1,9 +1,10 @@ = Hardware Abstraction Layer (HAL) -Embassy provides HAL's for several microcontroller families: +Embassy provides HALs for several microcontroller families: * `embassy-nrf` for the nRF microcontrollers from Nordic Semiconductor * `embassy-stm32` for STM32 microcontrollers from ST Microelectronics * `embassy-rp` for the Raspberry Pi RP2040 microcontrollers -These HALs implement async/await functionality for most peripherals while also implementing the async traits in Embassy. +These HALs implement async/await functionality for most peripherals while also implementing the +async traits in `embedded-hal-async`. You can also use these HALs with another executor. diff --git a/docs/modules/ROOT/pages/index.adoc b/docs/modules/ROOT/pages/index.adoc index 9a14e465..0a17c673 100644 --- a/docs/modules/ROOT/pages/index.adoc +++ b/docs/modules/ROOT/pages/index.adoc @@ -15,6 +15,20 @@ In Rust, non-blocking operations can be implemented using async-await. Async-awa == What is Embassy? -Embassy is an executor and a Hardware Access Layer (HAL). The executor is a scheduler that generally executes a fixed number of tasks, allocated at startup, though more can be added later. The HAL is an API that you can use to access peripherals, such as USART, UART, I2C, SPI, CAN, and USB. Embassy provides implementations of both async and blocking APIs where it makes sense. DMA (Direct Memory Access) is an example where async is a good fit, whereas GPIO states are a better fit for a blocking API. +The Embassy project consists of several crates that you can use together or independently: -Embassy may also provide a system timer that you can use for both async and blocking delays. For less than one microsecond, blocking delays should be used because the cost of context-switching is too high and the executor will be unable to provide accurate timing. +* **Executor** - The link:https://docs.embassy.dev/embassy-executor/[embassy-executor] is an async/await executor that generally executes a fixed number of tasks, allocated at startup, though more can be added later. The HAL is an API that you can use to access peripherals, such as USART, UART, I2C, SPI, CAN, and USB. Embassy provides implementations of both async and blocking APIs where it makes sense. DMA (Direct Memory Access) is an example where async is a good fit, whereas GPIO states are a better fit for a blocking API. The executor may also provide a system timer that you can use for both async and blocking delays. For less than one microsecond, blocking delays should be used because the cost of context-switching is too high and the executor will be unable to provide accurate timing. + +* **Hardware Abstraction Layers** - HALs implement safe, idiomatic Rust APIs to use the hardware capabilities, so raw register manipulation is not needed. The Embassy project maintains HALs for select hardware, but you can still use HALs from other projects with Embassy. +** link:https://docs.embassy.dev/embassy-stm32/[embassy-stm32], for all STM32 microcontroller families. +** link:https://docs.embassy.dev/embassy-nrf/[embassy-nrf], for the Nordic Semiconductor nRF52, nRF53, nRF91 series. + +* **Networking** - The link:https://docs.embassy.dev/embassy-net/[embassy-net] network stack implements extensive networking functionality, including Ethernet, IP, TCP, UDP, ICMP and DHCP. Async drastically simplifies managing timeouts and serving multiple connections concurrently. + +* **Bluetooth** - The link:https://github.com/embassy-rs/nrf-softdevice[nrf-softdevice] crate provides Bluetooth Low Energy 4.x and 5.x support for nRF52 microcontrollers. + +* **LoRa** - link:https://docs.embassy.dev/embassy-lora/[embassy-lora] supports LoRa networking on STM32WL wireless microcontrollers and Semtech SX127x transceivers. + +* **USB** - link:https://docs.embassy.dev/embassy-usb/[embassy-usb] implements a device-side USB stack. Implementations for common classes such as USB serial (CDC ACM) and USB HID are available, and a rich builder API allows building your own. + +* **Bootloader and DFU** - link:https://github.com/embassy-rs/embassy/tree/master/embassy-boot[embassy-boot] is a lightweight bootloader supporting firmware application upgrades in a power-fail-safe way, with trial boots and rollbacks. diff --git a/docs/modules/ROOT/pages/runtime.adoc b/docs/modules/ROOT/pages/runtime.adoc index 0adaa21a..a7d6a8d0 100644 --- a/docs/modules/ROOT/pages/runtime.adoc +++ b/docs/modules/ROOT/pages/runtime.adoc @@ -1,6 +1,6 @@ -= Embassy runtime += Embassy executor -The Embassy runtime is an async/await executor designed for embedded usage along with support functionality for interrupts and timers. +The Embassy executor is an async/await executor designed for embedded usage along with support functionality for interrupts and timers. == Features diff --git a/docs/modules/ROOT/pages/traits.adoc b/docs/modules/ROOT/pages/traits.adoc deleted file mode 100644 index 38b8f286..00000000 --- a/docs/modules/ROOT/pages/traits.adoc +++ /dev/null @@ -1,8 +0,0 @@ -= Embassy Traits - -Embassy provides a set of traits and types specifically designed for `async` usage. Many of these futures will be upstreamed to the `embedded-hal` crate at some point in the future, probably when the required GAT (Generic Associated Types) feature is stabilized in Rust. - -* `embassy::io`: `AsyncBufRead`, `AsyncWrite`. Traits for byte-stream IO, essentially `no_std` compatible versions of `futures::io`. The primary reason for re-defining these traits is that the `futures::io` variant requires `std::io::Error`, which does not work in the `no_std` environment. -* `embassy::time`: Time `Driver` trait that is implemented for different platforms. Time in Embassy is represented using the `Duration` and `Instant` types. - -These traits are implemented by the platform-specific crates, such as `embassy-nrf` or `embassy-stm32`.