Split embassy crate into embassy-executor, embassy-util.
This commit is contained in:
12
README.md
12
README.md
@ -16,7 +16,7 @@ Rust's <a href="https://rust-lang.github.io/async-book/">async/await</a> allows
|
||||
- <a href="https://docs.embassy.dev/embassy-nrf/">embassy-nrf</a>, for the Nordic Semiconductor nRF52, nRF53, nRF91 series.
|
||||
|
||||
- **Time that Just Works** -
|
||||
No more messing with hardware timers. <a href="https://docs.embassy.dev/embassy/git/thumbv7em-none-eabihf/time/index.html">embassy::time</a> provides Instant, Duration and Timer types that are globally available and never overflow.
|
||||
No more messing with hardware timers. <a href="https://docs.embassy.dev/embassy/git/thumbv7em-none-eabihf/time/index.html">embassy_executor::time</a> provides Instant, Duration and Timer types that are globally available and never overflow.
|
||||
|
||||
- **Real-time ready** -
|
||||
Tasks on the same async executor run cooperatively, but you can create multiple executors with different priorities, so that higher priority tasks preempt lower priority ones. See the <a href="https://github.com/embassy-rs/embassy/blob/master/examples/nrf/src/bin/multiprio.rs">example</a>.
|
||||
@ -44,13 +44,13 @@ The <a href="https://github.com/embassy-rs/nrf-softdevice">nrf-softdevice</a> cr
|
||||
|
||||
```rust,ignore
|
||||
use defmt::info;
|
||||
use embassy::executor::Spawner;
|
||||
use embassy::time::{Duration, Timer};
|
||||
use embassy_executor::executor::Spawner;
|
||||
use embassy_executor::time::{Duration, Timer};
|
||||
use embassy_nrf::gpio::{AnyPin, Input, Level, Output, OutputDrive, Pin, Pull};
|
||||
use embassy_nrf::Peripherals;
|
||||
|
||||
// Declare async tasks
|
||||
#[embassy::task]
|
||||
#[embassy_executor::task]
|
||||
async fn blink(pin: AnyPin) {
|
||||
let mut led = Output::new(pin, Level::Low, OutputDrive::Standard);
|
||||
|
||||
@ -64,7 +64,7 @@ async fn blink(pin: AnyPin) {
|
||||
}
|
||||
|
||||
// Main is itself an async task as well.
|
||||
#[embassy::main]
|
||||
#[embassy_executor::main]
|
||||
async fn main(spawner: Spawner, p: Peripherals) {
|
||||
// Spawned tasks run in the background, concurrently.
|
||||
spawner.spawn(blink(p.P0_13.degrade())).unwrap();
|
||||
@ -132,7 +132,7 @@ Embassy is guaranteed to compile on the latest stable Rust version at the time o
|
||||
|
||||
Several features require nightly:
|
||||
|
||||
- The `#[embassy::main]` and `#[embassy::task]` attribute macros.
|
||||
- The `#[embassy_executor::main]` and `#[embassy_executor::task]` attribute macros.
|
||||
- Async traits
|
||||
|
||||
These are enabled by activating the `nightly` Cargo feature. If you do so, Embassy is guaranteed to compile on the exact nightly version specified in `rust-toolchain.toml`. It might compile with older or newer nightly versions, but that may change in any new patch release.
|
||||
|
Reference in New Issue
Block a user