aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2024-01-11 23:51:47 +0100
committerGitHub <[email protected]>2024-01-11 23:51:47 +0100
commitd1a62733cd459d3c7778aa0707f58e7cfa75a94a (patch)
tree3047442f625ae2384ed26fc3c5373ee2bdee8a4d
parent0d62e9c96ca14d9d9596f72d090e41855050e83c (diff)
parent9f6517e408f3a4b0a3fb00387a99deade55d6528 (diff)
Merge pull request #2439 from embassy-rs/release-misc-stuff
More misc cleanups for release.
-rw-r--r--cyw43/Cargo.toml5
-rw-r--r--docs/modules/ROOT/examples/basic/Cargo.toml4
-rw-r--r--docs/modules/ROOT/examples/layer-by-layer/blinky-async/Cargo.toml2
-rw-r--r--embassy-boot-rp/Cargo.toml2
-rw-r--r--embassy-embedded-hal/Cargo.toml5
-rw-r--r--embassy-executor/CHANGELOG.md4
-rw-r--r--embassy-executor/Cargo.toml11
-rw-r--r--embassy-executor/src/raw/mod.rs27
-rw-r--r--embassy-executor/src/raw/timer_queue.rs12
-rw-r--r--embassy-net-adin1110/Cargo.toml7
-rw-r--r--embassy-net-enc28j60/Cargo.toml6
-rw-r--r--embassy-net-esp-hosted/Cargo.toml5
-rw-r--r--embassy-net-ppp/Cargo.toml3
-rw-r--r--embassy-net-wiznet/Cargo.toml5
-rw-r--r--embassy-net/CHANGELOG.md4
-rw-r--r--embassy-net/Cargo.toml4
-rw-r--r--embassy-nrf/Cargo.toml6
-rw-r--r--embassy-nrf/README.md16
-rw-r--r--embassy-nrf/src/lib.rs4
-rw-r--r--embassy-rp/Cargo.toml7
-rw-r--r--embassy-rp/README.md24
-rw-r--r--embassy-stm32-wpan/Cargo.toml5
-rw-r--r--embassy-stm32/Cargo.toml14
-rw-r--r--embassy-stm32/README.md19
-rw-r--r--embassy-stm32/src/lib.rs4
-rw-r--r--embassy-time-driver/CHANGELOG.md51
-rw-r--r--embassy-time-driver/Cargo.toml2
-rw-r--r--embassy-time-queue-driver/Cargo.toml25
-rw-r--r--embassy-time-queue-driver/README.md8
-rw-r--r--embassy-time-queue-driver/build.rs1
-rw-r--r--embassy-time-queue-driver/src/lib.rs (renamed from embassy-time/src/queue.rs)42
-rw-r--r--embassy-time/CHANGELOG.md6
-rw-r--r--embassy-time/Cargo.toml5
-rw-r--r--embassy-time/src/driver_mock.rs4
-rw-r--r--embassy-time/src/driver_std.rs5
-rw-r--r--embassy-time/src/driver_wasm.rs5
-rw-r--r--embassy-time/src/instant.rs6
-rw-r--r--embassy-time/src/lib.rs5
-rw-r--r--embassy-time/src/queue_generic.rs10
-rw-r--r--embassy-time/src/timer.rs16
-rw-r--r--embassy-usb-dfu/Cargo.toml2
-rw-r--r--embassy-usb-driver/Cargo.toml3
-rw-r--r--embassy-usb/Cargo.toml3
-rw-r--r--examples/boot/application/nrf/Cargo.toml4
-rw-r--r--examples/boot/application/rp/Cargo.toml4
-rw-r--r--examples/boot/application/stm32f3/Cargo.toml4
-rw-r--r--examples/boot/application/stm32f7/Cargo.toml4
-rw-r--r--examples/boot/application/stm32h7/Cargo.toml4
-rw-r--r--examples/boot/application/stm32l0/Cargo.toml4
-rw-r--r--examples/boot/application/stm32l1/Cargo.toml4
-rw-r--r--examples/boot/application/stm32l4/Cargo.toml4
-rw-r--r--examples/boot/application/stm32wb-dfu/Cargo.toml4
-rw-r--r--examples/boot/application/stm32wl/Cargo.toml4
-rw-r--r--examples/nrf-rtos-trace/Cargo.toml4
-rw-r--r--examples/nrf52840-rtic/Cargo.toml2
-rw-r--r--examples/nrf52840/Cargo.toml6
-rw-r--r--examples/nrf5340/Cargo.toml6
-rw-r--r--examples/nrf9160/Cargo.toml4
-rw-r--r--examples/rp/Cargo.toml6
-rw-r--r--examples/std/Cargo.toml6
-rw-r--r--examples/std/src/bin/serial.rs1
-rw-r--r--examples/stm32c0/Cargo.toml4
-rw-r--r--examples/stm32f0/Cargo.toml4
-rw-r--r--examples/stm32f1/Cargo.toml4
-rw-r--r--examples/stm32f2/Cargo.toml4
-rw-r--r--examples/stm32f3/Cargo.toml4
-rw-r--r--examples/stm32f334/Cargo.toml4
-rw-r--r--examples/stm32f4/Cargo.toml6
-rw-r--r--examples/stm32f7/Cargo.toml6
-rw-r--r--examples/stm32g0/Cargo.toml4
-rw-r--r--examples/stm32g4/Cargo.toml4
-rw-r--r--examples/stm32h5/Cargo.toml6
-rw-r--r--examples/stm32h7/Cargo.toml6
-rw-r--r--examples/stm32l0/Cargo.toml4
-rw-r--r--examples/stm32l1/Cargo.toml4
-rw-r--r--examples/stm32l4/Cargo.toml6
-rw-r--r--examples/stm32l5/Cargo.toml6
-rw-r--r--examples/stm32u5/Cargo.toml4
-rw-r--r--examples/stm32wb/Cargo.toml6
-rw-r--r--examples/stm32wba/Cargo.toml6
-rw-r--r--examples/stm32wl/Cargo.toml4
-rw-r--r--examples/wasm/Cargo.toml4
-rw-r--r--tests/nrf/Cargo.toml6
-rw-r--r--tests/perf-client/Cargo.toml4
-rw-r--r--tests/riscv32/Cargo.toml4
-rw-r--r--tests/rp/Cargo.toml6
-rw-r--r--tests/stm32/Cargo.toml6
87 files changed, 342 insertions, 263 deletions
diff --git a/cyw43/Cargo.toml b/cyw43/Cargo.toml
index 1042f21bc..20bb039a9 100644
--- a/cyw43/Cargo.toml
+++ b/cyw43/Cargo.toml
@@ -11,7 +11,7 @@ log = ["dep:log"]
11firmware-logs = [] 11firmware-logs = []
12 12
13[dependencies] 13[dependencies]
14embassy-time = { version = "0.2", path = "../embassy-time"} 14embassy-time = { version = "0.3.0", path = "../embassy-time"}
15embassy-sync = { version = "0.5.0", path = "../embassy-sync"} 15embassy-sync = { version = "0.5.0", path = "../embassy-sync"}
16embassy-futures = { version = "0.1.0", path = "../embassy-futures"} 16embassy-futures = { version = "0.1.0", path = "../embassy-futures"}
17embassy-net-driver-channel = { version = "0.2.0", path = "../embassy-net-driver-channel"} 17embassy-net-driver-channel = { version = "0.2.0", path = "../embassy-net-driver-channel"}
@@ -31,3 +31,6 @@ src_base = "https://github.com/embassy-rs/embassy/blob/cyw43-v$VERSION/cyw43/src
31src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/cyw43/src/" 31src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/cyw43/src/"
32target = "thumbv6m-none-eabi" 32target = "thumbv6m-none-eabi"
33features = ["defmt", "firmware-logs"] 33features = ["defmt", "firmware-logs"]
34
35[package.metadata.docs.rs]
36features = ["defmt", "firmware-logs"]
diff --git a/docs/modules/ROOT/examples/basic/Cargo.toml b/docs/modules/ROOT/examples/basic/Cargo.toml
index 8f6e05fae..2c282145d 100644
--- a/docs/modules/ROOT/examples/basic/Cargo.toml
+++ b/docs/modules/ROOT/examples/basic/Cargo.toml
@@ -6,8 +6,8 @@ version = "0.1.0"
6license = "MIT OR Apache-2.0" 6license = "MIT OR Apache-2.0"
7 7
8[dependencies] 8[dependencies]
9embassy-executor = { version = "0.4.0", path = "../../../../../embassy-executor", features = ["defmt", "integrated-timers", "arch-cortex-m", "executor-thread"] } 9embassy-executor = { version = "0.5.0", path = "../../../../../embassy-executor", features = ["defmt", "integrated-timers", "arch-cortex-m", "executor-thread"] }
10embassy-time = { version = "0.2.0", path = "../../../../../embassy-time", features = ["defmt"] } 10embassy-time = { version = "0.3.0", path = "../../../../../embassy-time", features = ["defmt"] }
11embassy-nrf = { version = "0.1.0", path = "../../../../../embassy-nrf", features = ["defmt", "nrf52840", "time-driver-rtc1", "gpiote"] } 11embassy-nrf = { version = "0.1.0", path = "../../../../../embassy-nrf", features = ["defmt", "nrf52840", "time-driver-rtc1", "gpiote"] }
12 12
13defmt = "0.3" 13defmt = "0.3"
diff --git a/docs/modules/ROOT/examples/layer-by-layer/blinky-async/Cargo.toml b/docs/modules/ROOT/examples/layer-by-layer/blinky-async/Cargo.toml
index 2d47dccf4..64f7e8403 100644
--- a/docs/modules/ROOT/examples/layer-by-layer/blinky-async/Cargo.toml
+++ b/docs/modules/ROOT/examples/layer-by-layer/blinky-async/Cargo.toml
@@ -8,7 +8,7 @@ license = "MIT OR Apache-2.0"
8cortex-m = "0.7" 8cortex-m = "0.7"
9cortex-m-rt = "0.7" 9cortex-m-rt = "0.7"
10embassy-stm32 = { version = "0.1.0", features = ["stm32l475vg", "memory-x", "exti"] } 10embassy-stm32 = { version = "0.1.0", features = ["stm32l475vg", "memory-x", "exti"] }
11embassy-executor = { version = "0.4.0", features = ["arch-cortex-m", "executor-thread"] } 11embassy-executor = { version = "0.5.0", features = ["arch-cortex-m", "executor-thread"] }
12 12
13defmt = "0.3.0" 13defmt = "0.3.0"
14defmt-rtt = "0.3.0" 14defmt-rtt = "0.3.0"
diff --git a/embassy-boot-rp/Cargo.toml b/embassy-boot-rp/Cargo.toml
index dacb27747..ceb14445c 100644
--- a/embassy-boot-rp/Cargo.toml
+++ b/embassy-boot-rp/Cargo.toml
@@ -26,7 +26,7 @@ log = { version = "0.4", optional = true }
26embassy-sync = { version = "0.5.0", path = "../embassy-sync" } 26embassy-sync = { version = "0.5.0", path = "../embassy-sync" }
27embassy-rp = { version = "0.1.0", path = "../embassy-rp", default-features = false } 27embassy-rp = { version = "0.1.0", path = "../embassy-rp", default-features = false }
28embassy-boot = { version = "0.1.0", path = "../embassy-boot" } 28embassy-boot = { version = "0.1.0", path = "../embassy-boot" }
29embassy-time = { version = "0.2.0", path = "../embassy-time" } 29embassy-time = { version = "0.3.0", path = "../embassy-time" }
30 30
31cortex-m = { version = "0.7.6" } 31cortex-m = { version = "0.7.6" }
32cortex-m-rt = { version = "0.7" } 32cortex-m-rt = { version = "0.7" }
diff --git a/embassy-embedded-hal/Cargo.toml b/embassy-embedded-hal/Cargo.toml
index 42382f834..c525f13fc 100644
--- a/embassy-embedded-hal/Cargo.toml
+++ b/embassy-embedded-hal/Cargo.toml
@@ -11,6 +11,9 @@ src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-embed
11features = ["std"] 11features = ["std"]
12target = "x86_64-unknown-linux-gnu" 12target = "x86_64-unknown-linux-gnu"
13 13
14[package.metadata.docs.rs]
15features = ["std"]
16
14[features] 17[features]
15std = [] 18std = []
16time = ["dep:embassy-time"] 19time = ["dep:embassy-time"]
@@ -19,7 +22,7 @@ default = ["time"]
19[dependencies] 22[dependencies]
20embassy-futures = { version = "0.1.0", path = "../embassy-futures" } 23embassy-futures = { version = "0.1.0", path = "../embassy-futures" }
21embassy-sync = { version = "0.5.0", path = "../embassy-sync" } 24embassy-sync = { version = "0.5.0", path = "../embassy-sync" }
22embassy-time = { version = "0.2", path = "../embassy-time", optional = true } 25embassy-time = { version = "0.3.0", path = "../embassy-time", optional = true }
23embedded-hal-02 = { package = "embedded-hal", version = "0.2.6", features = [ 26embedded-hal-02 = { package = "embedded-hal", version = "0.2.6", features = [
24 "unproven", 27 "unproven",
25] } 28] }
diff --git a/embassy-executor/CHANGELOG.md b/embassy-executor/CHANGELOG.md
index 5c6749230..77c64fd8e 100644
--- a/embassy-executor/CHANGELOG.md
+++ b/embassy-executor/CHANGELOG.md
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7 7
8## Unreleased 8## Unreleased
9 9
10## 0.5.0 - 2024-01-11
11
12- Updated to `embassy-time-driver 0.1`, `embassy-time-queue-driver 0.1`, compatible with `embassy-time v0.3` and higher.
13
10## 0.4.0 - 2023-12-05 14## 0.4.0 - 2023-12-05
11 15
12- Removed `arch-xtensa`. Use the executor provided by the HAL crate (`esp-hal`, `esp32s3-hal`, etc...) instead. 16- Removed `arch-xtensa`. Use the executor provided by the HAL crate (`esp-hal`, `esp32s3-hal`, etc...) instead.
diff --git a/embassy-executor/Cargo.toml b/embassy-executor/Cargo.toml
index c71452398..2ef3f5294 100644
--- a/embassy-executor/Cargo.toml
+++ b/embassy-executor/Cargo.toml
@@ -1,6 +1,6 @@
1[package] 1[package]
2name = "embassy-executor" 2name = "embassy-executor"
3version = "0.4.0" 3version = "0.5.0"
4edition = "2021" 4edition = "2021"
5license = "MIT OR Apache-2.0" 5license = "MIT OR Apache-2.0"
6description = "async/await executor designed for embedded usage" 6description = "async/await executor designed for embedded usage"
@@ -33,7 +33,8 @@ log = { version = "0.4.14", optional = true }
33rtos-trace = { version = "0.1.2", optional = true } 33rtos-trace = { version = "0.1.2", optional = true }
34 34
35embassy-executor-macros = { version = "0.4.0", path = "../embassy-executor-macros" } 35embassy-executor-macros = { version = "0.4.0", path = "../embassy-executor-macros" }
36embassy-time = { version = "0.2", path = "../embassy-time", optional = true} 36embassy-time-driver = { version = "0.1.0", path = "../embassy-time-driver", optional = true }
37embassy-time-queue-driver = { version = "0.1.0", path = "../embassy-time-queue-driver", optional = true }
37critical-section = "1.1" 38critical-section = "1.1"
38 39
39document-features = "0.2.7" 40document-features = "0.2.7"
@@ -63,8 +64,8 @@ nightly = ["embassy-executor-macros/nightly"]
63# See: https://github.com/embassy-rs/embassy/pull/1263 64# See: https://github.com/embassy-rs/embassy/pull/1263
64turbowakers = [] 65turbowakers = []
65 66
66## Use timers from `embassy-time` 67## Use the executor-integrated `embassy-time` timer queue.
67integrated-timers = ["dep:embassy-time"] 68integrated-timers = ["dep:embassy-time-driver", "dep:embassy-time-queue-driver"]
68 69
69#! ### Architecture 70#! ### Architecture
70_arch = [] # some arch was picked 71_arch = [] # some arch was picked
@@ -177,4 +178,4 @@ task-arena-size-1048576 = []
177 178
178# END AUTOGENERATED CONFIG FEATURES 179# END AUTOGENERATED CONFIG FEATURES
179 180
180#! </details> \ No newline at end of file 181#! </details>
diff --git a/embassy-executor/src/raw/mod.rs b/embassy-executor/src/raw/mod.rs
index b16a1c7c3..3f00be4a8 100644
--- a/embassy-executor/src/raw/mod.rs
+++ b/embassy-executor/src/raw/mod.rs
@@ -30,9 +30,7 @@ use core::ptr::NonNull;
30use core::task::{Context, Poll}; 30use core::task::{Context, Poll};
31 31
32#[cfg(feature = "integrated-timers")] 32#[cfg(feature = "integrated-timers")]
33use embassy_time::driver::{self, AlarmHandle}; 33use embassy_time_driver::{self, AlarmHandle};
34#[cfg(feature = "integrated-timers")]
35use embassy_time::Instant;
36#[cfg(feature = "rtos-trace")] 34#[cfg(feature = "rtos-trace")]
37use rtos_trace::trace; 35use rtos_trace::trace;
38 36
@@ -50,7 +48,7 @@ pub(crate) struct TaskHeader {
50 poll_fn: SyncUnsafeCell<Option<unsafe fn(TaskRef)>>, 48 poll_fn: SyncUnsafeCell<Option<unsafe fn(TaskRef)>>,
51 49
52 #[cfg(feature = "integrated-timers")] 50 #[cfg(feature = "integrated-timers")]
53 pub(crate) expires_at: SyncUnsafeCell<Instant>, 51 pub(crate) expires_at: SyncUnsafeCell<u64>,
54 #[cfg(feature = "integrated-timers")] 52 #[cfg(feature = "integrated-timers")]
55 pub(crate) timer_queue_item: timer_queue::TimerQueueItem, 53 pub(crate) timer_queue_item: timer_queue::TimerQueueItem,
56} 54}
@@ -123,7 +121,7 @@ impl<F: Future + 'static> TaskStorage<F> {
123 poll_fn: SyncUnsafeCell::new(None), 121 poll_fn: SyncUnsafeCell::new(None),
124 122
125 #[cfg(feature = "integrated-timers")] 123 #[cfg(feature = "integrated-timers")]
126 expires_at: SyncUnsafeCell::new(Instant::from_ticks(0)), 124 expires_at: SyncUnsafeCell::new(0),
127 #[cfg(feature = "integrated-timers")] 125 #[cfg(feature = "integrated-timers")]
128 timer_queue_item: timer_queue::TimerQueueItem::new(), 126 timer_queue_item: timer_queue::TimerQueueItem::new(),
129 }, 127 },
@@ -164,7 +162,7 @@ impl<F: Future + 'static> TaskStorage<F> {
164 this.raw.state.despawn(); 162 this.raw.state.despawn();
165 163
166 #[cfg(feature = "integrated-timers")] 164 #[cfg(feature = "integrated-timers")]
167 this.raw.expires_at.set(Instant::MAX); 165 this.raw.expires_at.set(u64::MAX);
168 } 166 }
169 Poll::Pending => {} 167 Poll::Pending => {}
170 } 168 }
@@ -328,7 +326,7 @@ pub(crate) struct SyncExecutor {
328impl SyncExecutor { 326impl SyncExecutor {
329 pub(crate) fn new(pender: Pender) -> Self { 327 pub(crate) fn new(pender: Pender) -> Self {
330 #[cfg(feature = "integrated-timers")] 328 #[cfg(feature = "integrated-timers")]
331 let alarm = unsafe { unwrap!(driver::allocate_alarm()) }; 329 let alarm = unsafe { unwrap!(embassy_time_driver::allocate_alarm()) };
332 330
333 Self { 331 Self {
334 run_queue: RunQueue::new(), 332 run_queue: RunQueue::new(),
@@ -377,18 +375,19 @@ impl SyncExecutor {
377 /// Same as [`Executor::poll`], plus you must only call this on the thread this executor was created. 375 /// Same as [`Executor::poll`], plus you must only call this on the thread this executor was created.
378 pub(crate) unsafe fn poll(&'static self) { 376 pub(crate) unsafe fn poll(&'static self) {
379 #[cfg(feature = "integrated-timers")] 377 #[cfg(feature = "integrated-timers")]
380 driver::set_alarm_callback(self.alarm, Self::alarm_callback, self as *const _ as *mut ()); 378 embassy_time_driver::set_alarm_callback(self.alarm, Self::alarm_callback, self as *const _ as *mut ());
381 379
382 #[allow(clippy::never_loop)] 380 #[allow(clippy::never_loop)]
383 loop { 381 loop {
384 #[cfg(feature = "integrated-timers")] 382 #[cfg(feature = "integrated-timers")]
385 self.timer_queue.dequeue_expired(Instant::now(), wake_task_no_pend); 383 self.timer_queue
384 .dequeue_expired(embassy_time_driver::now(), wake_task_no_pend);
386 385
387 self.run_queue.dequeue_all(|p| { 386 self.run_queue.dequeue_all(|p| {
388 let task = p.header(); 387 let task = p.header();
389 388
390 #[cfg(feature = "integrated-timers")] 389 #[cfg(feature = "integrated-timers")]
391 task.expires_at.set(Instant::MAX); 390 task.expires_at.set(u64::MAX);
392 391
393 if !task.state.run_dequeue() { 392 if !task.state.run_dequeue() {
394 // If task is not running, ignore it. This can happen in the following scenario: 393 // If task is not running, ignore it. This can happen in the following scenario:
@@ -418,7 +417,7 @@ impl SyncExecutor {
418 // If this is already in the past, set_alarm might return false 417 // If this is already in the past, set_alarm might return false
419 // In that case do another poll loop iteration. 418 // In that case do another poll loop iteration.
420 let next_expiration = self.timer_queue.next_expiration(); 419 let next_expiration = self.timer_queue.next_expiration();
421 if driver::set_alarm(self.alarm, next_expiration.as_ticks()) { 420 if embassy_time_driver::set_alarm(self.alarm, next_expiration) {
422 break; 421 break;
423 } 422 }
424 } 423 }
@@ -568,8 +567,8 @@ pub fn wake_task_no_pend(task: TaskRef) {
568struct TimerQueue; 567struct TimerQueue;
569 568
570#[cfg(feature = "integrated-timers")] 569#[cfg(feature = "integrated-timers")]
571impl embassy_time::queue::TimerQueue for TimerQueue { 570impl embassy_time_queue_driver::TimerQueue for TimerQueue {
572 fn schedule_wake(&'static self, at: Instant, waker: &core::task::Waker) { 571 fn schedule_wake(&'static self, at: u64, waker: &core::task::Waker) {
573 let task = waker::task_from_waker(waker); 572 let task = waker::task_from_waker(waker);
574 let task = task.header(); 573 let task = task.header();
575 unsafe { 574 unsafe {
@@ -580,7 +579,7 @@ impl embassy_time::queue::TimerQueue for TimerQueue {
580} 579}
581 580
582#[cfg(feature = "integrated-timers")] 581#[cfg(feature = "integrated-timers")]
583embassy_time::timer_queue_impl!(static TIMER_QUEUE: TimerQueue = TimerQueue); 582embassy_time_queue_driver::timer_queue_impl!(static TIMER_QUEUE: TimerQueue = TimerQueue);
584 583
585#[cfg(feature = "rtos-trace")] 584#[cfg(feature = "rtos-trace")]
586impl rtos_trace::RtosTraceOSCallbacks for Executor { 585impl rtos_trace::RtosTraceOSCallbacks for Executor {
diff --git a/embassy-executor/src/raw/timer_queue.rs b/embassy-executor/src/raw/timer_queue.rs
index 59a3b43f5..94a5f340b 100644
--- a/embassy-executor/src/raw/timer_queue.rs
+++ b/embassy-executor/src/raw/timer_queue.rs
@@ -1,7 +1,5 @@
1use core::cmp::min; 1use core::cmp::min;
2 2
3use embassy_time::Instant;
4
5use super::TaskRef; 3use super::TaskRef;
6use crate::raw::util::SyncUnsafeCell; 4use crate::raw::util::SyncUnsafeCell;
7 5
@@ -30,7 +28,7 @@ impl TimerQueue {
30 28
31 pub(crate) unsafe fn update(&self, p: TaskRef) { 29 pub(crate) unsafe fn update(&self, p: TaskRef) {
32 let task = p.header(); 30 let task = p.header();
33 if task.expires_at.get() != Instant::MAX { 31 if task.expires_at.get() != u64::MAX {
34 if task.state.timer_enqueue() { 32 if task.state.timer_enqueue() {
35 task.timer_queue_item.next.set(self.head.get()); 33 task.timer_queue_item.next.set(self.head.get());
36 self.head.set(Some(p)); 34 self.head.set(Some(p));
@@ -38,18 +36,18 @@ impl TimerQueue {
38 } 36 }
39 } 37 }
40 38
41 pub(crate) unsafe fn next_expiration(&self) -> Instant { 39 pub(crate) unsafe fn next_expiration(&self) -> u64 {
42 let mut res = Instant::MAX; 40 let mut res = u64::MAX;
43 self.retain(|p| { 41 self.retain(|p| {
44 let task = p.header(); 42 let task = p.header();
45 let expires = task.expires_at.get(); 43 let expires = task.expires_at.get();
46 res = min(res, expires); 44 res = min(res, expires);
47 expires != Instant::MAX 45 expires != u64::MAX
48 }); 46 });
49 res 47 res
50 } 48 }
51 49
52 pub(crate) unsafe fn dequeue_expired(&self, now: Instant, on_task: impl Fn(TaskRef)) { 50 pub(crate) unsafe fn dequeue_expired(&self, now: u64, on_task: impl Fn(TaskRef)) {
53 self.retain(|p| { 51 self.retain(|p| {
54 let task = p.header(); 52 let task = p.header();
55 if task.expires_at.get() <= now { 53 if task.expires_at.get() <= now {
diff --git a/embassy-net-adin1110/Cargo.toml b/embassy-net-adin1110/Cargo.toml
index 52b89fce9..e007e48cd 100644
--- a/embassy-net-adin1110/Cargo.toml
+++ b/embassy-net-adin1110/Cargo.toml
@@ -16,12 +16,12 @@ embedded-hal-1 = { package = "embedded-hal", version = "1.0" }
16embedded-hal-async = { version = "1.0" } 16embedded-hal-async = { version = "1.0" }
17embedded-hal-bus = { version = "0.1", features = ["async"] } 17embedded-hal-bus = { version = "0.1", features = ["async"] }
18embassy-net-driver-channel = { version = "0.2.0", path = "../embassy-net-driver-channel" } 18embassy-net-driver-channel = { version = "0.2.0", path = "../embassy-net-driver-channel" }
19embassy-time = { version = "0.2", path = "../embassy-time" } 19embassy-time = { version = "0.3.0", path = "../embassy-time" }
20embassy-futures = { version = "0.1.0", path = "../embassy-futures" } 20embassy-futures = { version = "0.1.0", path = "../embassy-futures" }
21bitfield = "0.14.0" 21bitfield = "0.14.0"
22 22
23[dev-dependencies] 23[dev-dependencies]
24embedded-hal-mock = { git = "https://github.com/Dirbaio/embedded-hal-mock", rev = "e3c820094ea0fc71449916bd790d0e3d76f4c0e4", features = ["embedded-hal-async", "eh1"] } 24embedded-hal-mock = { version = "0.10.0", features = ["embedded-hal-async", "eh1"] }
25crc = "3.0.1" 25crc = "3.0.1"
26env_logger = "0.10" 26env_logger = "0.10"
27critical-section = { version = "1.1.2", features = ["std"] } 27critical-section = { version = "1.1.2", features = ["std"] }
@@ -37,3 +37,6 @@ src_base = "https://github.com/embassy-rs/embassy/blob/embassy-net-adin1110-v$VE
37src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-net-adin1110/src/" 37src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-net-adin1110/src/"
38target = "thumbv7em-none-eabi" 38target = "thumbv7em-none-eabi"
39features = ["defmt"] 39features = ["defmt"]
40
41[package.metadata.docs.rs]
42features = ["defmt"]
diff --git a/embassy-net-enc28j60/Cargo.toml b/embassy-net-enc28j60/Cargo.toml
index 6d18f708e..92d18e38f 100644
--- a/embassy-net-enc28j60/Cargo.toml
+++ b/embassy-net-enc28j60/Cargo.toml
@@ -11,7 +11,7 @@ edition = "2021"
11embedded-hal = { version = "1.0" } 11embedded-hal = { version = "1.0" }
12embedded-hal-async = { version = "1.0" } 12embedded-hal-async = { version = "1.0" }
13embassy-net-driver = { version = "0.2.0", path = "../embassy-net-driver" } 13embassy-net-driver = { version = "0.2.0", path = "../embassy-net-driver" }
14embassy-time = { version = "0.2", path = "../embassy-time" } 14embassy-time = { version = "0.3.0", path = "../embassy-time" }
15embassy-futures = { version = "0.1.0", path = "../embassy-futures" } 15embassy-futures = { version = "0.1.0", path = "../embassy-futures" }
16 16
17defmt = { version = "0.3", optional = true } 17defmt = { version = "0.3", optional = true }
@@ -21,3 +21,7 @@ log = { version = "0.4.14", optional = true }
21src_base = "https://github.com/embassy-rs/embassy/blob/embassy-net-enc28j60-v$VERSION/embassy-net-enc28j60/src/" 21src_base = "https://github.com/embassy-rs/embassy/blob/embassy-net-enc28j60-v$VERSION/embassy-net-enc28j60/src/"
22src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-net-enc28j60/src/" 22src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-net-enc28j60/src/"
23target = "thumbv7em-none-eabi" 23target = "thumbv7em-none-eabi"
24features = ["defmt"]
25
26[package.metadata.docs.rs]
27features = ["defmt"]
diff --git a/embassy-net-esp-hosted/Cargo.toml b/embassy-net-esp-hosted/Cargo.toml
index 1b022de40..7d268a8bb 100644
--- a/embassy-net-esp-hosted/Cargo.toml
+++ b/embassy-net-esp-hosted/Cargo.toml
@@ -11,7 +11,7 @@ license = "MIT OR Apache-2.0"
11defmt = { version = "0.3", optional = true } 11defmt = { version = "0.3", optional = true }
12log = { version = "0.4.14", optional = true } 12log = { version = "0.4.14", optional = true }
13 13
14embassy-time = { version = "0.2", path = "../embassy-time" } 14embassy-time = { version = "0.3.0", path = "../embassy-time" }
15embassy-sync = { version = "0.5.0", path = "../embassy-sync"} 15embassy-sync = { version = "0.5.0", path = "../embassy-sync"}
16embassy-futures = { version = "0.1.0", path = "../embassy-futures"} 16embassy-futures = { version = "0.1.0", path = "../embassy-futures"}
17embassy-net-driver-channel = { version = "0.2.0", path = "../embassy-net-driver-channel"} 17embassy-net-driver-channel = { version = "0.2.0", path = "../embassy-net-driver-channel"}
@@ -27,3 +27,6 @@ src_base = "https://github.com/embassy-rs/embassy/blob/embassy-net-esp-hosted-v$
27src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-net-esp-hosted/src/" 27src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-net-esp-hosted/src/"
28target = "thumbv7em-none-eabi" 28target = "thumbv7em-none-eabi"
29features = ["defmt"] 29features = ["defmt"]
30
31[package.metadata.docs.rs]
32features = ["defmt"]
diff --git a/embassy-net-ppp/Cargo.toml b/embassy-net-ppp/Cargo.toml
index 33e05227d..1ec8410c8 100644
--- a/embassy-net-ppp/Cargo.toml
+++ b/embassy-net-ppp/Cargo.toml
@@ -26,3 +26,6 @@ src_base = "https://github.com/embassy-rs/embassy/blob/embassy-net-ppp-v$VERSION
26src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-net-ppp/src/" 26src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-net-ppp/src/"
27target = "thumbv7em-none-eabi" 27target = "thumbv7em-none-eabi"
28features = ["defmt"] 28features = ["defmt"]
29
30[package.metadata.docs.rs]
31features = ["defmt"]
diff --git a/embassy-net-wiznet/Cargo.toml b/embassy-net-wiznet/Cargo.toml
index 6ed308596..4c1447508 100644
--- a/embassy-net-wiznet/Cargo.toml
+++ b/embassy-net-wiznet/Cargo.toml
@@ -12,7 +12,7 @@ repository = "https://github.com/embassy-rs/embassy"
12embedded-hal = { version = "1.0" } 12embedded-hal = { version = "1.0" }
13embedded-hal-async = { version = "1.0" } 13embedded-hal-async = { version = "1.0" }
14embassy-net-driver-channel = { version = "0.2.0", path = "../embassy-net-driver-channel" } 14embassy-net-driver-channel = { version = "0.2.0", path = "../embassy-net-driver-channel" }
15embassy-time = { version = "0.2", path = "../embassy-time" } 15embassy-time = { version = "0.3.0", path = "../embassy-time" }
16embassy-futures = { version = "0.1.0", path = "../embassy-futures" } 16embassy-futures = { version = "0.1.0", path = "../embassy-futures" }
17defmt = { version = "0.3", optional = true } 17defmt = { version = "0.3", optional = true }
18 18
@@ -21,3 +21,6 @@ src_base = "https://github.com/embassy-rs/embassy/blob/embassy-net-wiznet-v$VERS
21src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-net-wiznet/src/" 21src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-net-wiznet/src/"
22target = "thumbv7em-none-eabi" 22target = "thumbv7em-none-eabi"
23features = ["defmt"] 23features = ["defmt"]
24
25[package.metadata.docs.rs]
26features = ["defmt"]
diff --git a/embassy-net/CHANGELOG.md b/embassy-net/CHANGELOG.md
index cc763b74c..56e245b92 100644
--- a/embassy-net/CHANGELOG.md
+++ b/embassy-net/CHANGELOG.md
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7 7
8## Unreleased 8## Unreleased
9 9
10## 0.4 - 2024-01-11
11
12- Update to `embassy-time` v0.3.
13
10## 0.3 - 2024-01-04 14## 0.3 - 2024-01-04
11 15
12- Added `ReadReady` and `WriteReady` impls on `TcpSocket`. 16- Added `ReadReady` and `WriteReady` impls on `TcpSocket`.
diff --git a/embassy-net/Cargo.toml b/embassy-net/Cargo.toml
index 864956616..ffa4a64b6 100644
--- a/embassy-net/Cargo.toml
+++ b/embassy-net/Cargo.toml
@@ -1,6 +1,6 @@
1[package] 1[package]
2name = "embassy-net" 2name = "embassy-net"
3version = "0.3.0" 3version = "0.4.0"
4edition = "2021" 4edition = "2021"
5license = "MIT OR Apache-2.0" 5license = "MIT OR Apache-2.0"
6description = "Async TCP/IP network stack for embedded systems" 6description = "Async TCP/IP network stack for embedded systems"
@@ -69,7 +69,7 @@ smoltcp = { version = "0.11.0", default-features = false, features = [
69] } 69] }
70 70
71embassy-net-driver = { version = "0.2.0", path = "../embassy-net-driver" } 71embassy-net-driver = { version = "0.2.0", path = "../embassy-net-driver" }
72embassy-time = { version = "0.2", path = "../embassy-time" } 72embassy-time = { version = "0.3.0", path = "../embassy-time" }
73embassy-sync = { version = "0.5.0", path = "../embassy-sync" } 73embassy-sync = { version = "0.5.0", path = "../embassy-sync" }
74embedded-io-async = { version = "0.6.1" } 74embedded-io-async = { version = "0.6.1" }
75 75
diff --git a/embassy-nrf/Cargo.toml b/embassy-nrf/Cargo.toml
index f62059eb1..39b4cc598 100644
--- a/embassy-nrf/Cargo.toml
+++ b/embassy-nrf/Cargo.toml
@@ -15,6 +15,10 @@ flavors = [
15 { regex_feature = "nrf91.*", target = "thumbv8m.main-none-eabihf" }, 15 { regex_feature = "nrf91.*", target = "thumbv8m.main-none-eabihf" },
16] 16]
17 17
18[package.metadata.docs.rs]
19features = ["nrf52840", "time", "defmt", "unstable-pac", "gpiote", "time-driver-rtc1"]
20rustdoc-args = ["--cfg", "docsrs"]
21
18[features] 22[features]
19default = ["rt"] 23default = ["rt"]
20## Cortex-M runtime (enabled by default) 24## Cortex-M runtime (enabled by default)
@@ -111,7 +115,7 @@ _nrf52832_anomaly_109 = []
111 115
112[dependencies] 116[dependencies]
113embassy-time-driver = { version = "0.1", path = "../embassy-time-driver", optional = true } 117embassy-time-driver = { version = "0.1", path = "../embassy-time-driver", optional = true }
114embassy-time = { version = "0.2", path = "../embassy-time", optional = true } 118embassy-time = { version = "0.3.0", path = "../embassy-time", optional = true }
115embassy-sync = { version = "0.5.0", path = "../embassy-sync" } 119embassy-sync = { version = "0.5.0", path = "../embassy-sync" }
116embassy-hal-internal = {version = "0.1.0", path = "../embassy-hal-internal", features = ["cortex-m", "prio-bits-3"] } 120embassy-hal-internal = {version = "0.1.0", path = "../embassy-hal-internal", features = ["cortex-m", "prio-bits-3"] }
117embassy-embedded-hal = {version = "0.1.0", path = "../embassy-embedded-hal" } 121embassy-embedded-hal = {version = "0.1.0", path = "../embassy-embedded-hal" }
diff --git a/embassy-nrf/README.md b/embassy-nrf/README.md
index 1ead96b2c..50662749d 100644
--- a/embassy-nrf/README.md
+++ b/embassy-nrf/README.md
@@ -4,7 +4,7 @@ HALs implement safe, idiomatic Rust APIs to use the hardware capabilities, so ra
4 4
5The Embassy nRF HAL targets the Nordic Semiconductor nRF family of hardware. The HAL implements both blocking and async APIs 5The Embassy nRF HAL targets the Nordic Semiconductor nRF family of hardware. The HAL implements both blocking and async APIs
6for many peripherals. The benefit of using the async APIs is that the HAL takes care of waiting for peripherals to 6for many peripherals. The benefit of using the async APIs is that the HAL takes care of waiting for peripherals to
7complete operations in low power mod and handling interrupts, so that applications can focus on more important matters. 7complete operations in low power mode and handling interrupts, so that applications can focus on more important matters.
8 8
9NOTE: The Embassy HALs can be used both for non-async and async operations. For async, you can choose which runtime you want to use. 9NOTE: The Embassy HALs can be used both for non-async and async operations. For async, you can choose which runtime you want to use.
10 10
@@ -18,16 +18,26 @@ The `embassy-nrf` HAL supports most variants of the nRF family:
18* nRF53 ([examples](https://github.com/embassy-rs/embassy/tree/main/examples/nrf5340)) 18* nRF53 ([examples](https://github.com/embassy-rs/embassy/tree/main/examples/nrf5340))
19* nRF91 ([examples](https://github.com/embassy-rs/embassy/tree/main/examples/nrf9160)) 19* nRF91 ([examples](https://github.com/embassy-rs/embassy/tree/main/examples/nrf9160))
20 20
21Most peripherals are supported. 21Most peripherals are supported. To check what's available, make sure to pick the MCU you're targeting in the top menu in the [documentation](https://docs.embassy.dev/embassy-nrf).
22
23For MCUs with TrustZone support, both Secure (S) and Non-Secure (NS) modes are supported. Running in Secure mode
24allows running Rust code without a SPM or TF-M binary, saving flash space and simplifying development.
22 25
23## Time driver 26## Time driver
24 27
25If the `time` feature is enabled, the HAL uses the RTC peripheral as a global time driver for [embassy-time](https://crates.io/crates/embassy-time), with a tick rate of 32768 Hz. 28If the `time-driver-rtc1` feature is enabled, the HAL uses the RTC peripheral as a global time driver for [embassy-time](https://crates.io/crates/embassy-time), with a tick rate of 32768 Hz.
26 29
27## Embedded-hal 30## Embedded-hal
28 31
29The `embassy-nrf` HAL implements the traits from [embedded-hal](https://crates.io/crates/embedded-hal) (v0.2 and 1.0) and [embedded-hal-async](https://crates.io/crates/embedded-hal-async), as well as [embedded-io](https://crates.io/crates/embedded-io) and [embedded-io-async](https://crates.io/crates/embedded-io-async). 32The `embassy-nrf` HAL implements the traits from [embedded-hal](https://crates.io/crates/embedded-hal) (v0.2 and 1.0) and [embedded-hal-async](https://crates.io/crates/embedded-hal-async), as well as [embedded-io](https://crates.io/crates/embedded-io) and [embedded-io-async](https://crates.io/crates/embedded-io-async).
30 33
34## Interoperability
35
36This crate can run on any executor.
37
38Optionally, some features requiring [`embassy-time`](https://crates.io/crates/embassy-time) can be activated with the `time` feature. If you enable it,
39you must link an `embassy-time` driver in your project.
40
31## EasyDMA considerations 41## EasyDMA considerations
32 42
33On nRF chips, peripherals can use the so called EasyDMA feature to offload the task of interacting 43On nRF chips, peripherals can use the so called EasyDMA feature to offload the task of interacting
diff --git a/embassy-nrf/src/lib.rs b/embassy-nrf/src/lib.rs
index 1510b7265..d9c92a76d 100644
--- a/embassy-nrf/src/lib.rs
+++ b/embassy-nrf/src/lib.rs
@@ -1,5 +1,9 @@
1#![no_std] 1#![no_std]
2#![allow(async_fn_in_trait)] 2#![allow(async_fn_in_trait)]
3#![cfg_attr(
4 docsrs,
5 doc = "<div style='padding:30px;background:#810;color:#fff;text-align:center;'><p>You might want to <a href='https://docs.embassy.dev/embassy-nrf'>browse the `embassy-nrf` documentation on the Embassy website</a> instead.</p><p>The documentation here on `docs.rs` is built for a single chip only (nRF52840 in particular), while on the Embassy website you can pick your exact chip from the top menu. Available peripherals and their APIs change depending on the chip.</p></div>\n\n"
6)]
3#![doc = include_str!("../README.md")] 7#![doc = include_str!("../README.md")]
4#![warn(missing_docs)] 8#![warn(missing_docs)]
5 9
diff --git a/embassy-rp/Cargo.toml b/embassy-rp/Cargo.toml
index b324eab82..16d55182a 100644
--- a/embassy-rp/Cargo.toml
+++ b/embassy-rp/Cargo.toml
@@ -12,6 +12,9 @@ flavors = [
12 { name = "rp2040", target = "thumbv6m-none-eabi" }, 12 { name = "rp2040", target = "thumbv6m-none-eabi" },
13] 13]
14 14
15[package.metadata.docs.rs]
16features = ["defmt", "unstable-pac", "time-driver"]
17
15[features] 18[features]
16default = [ "rt" ] 19default = [ "rt" ]
17## Enable the RP runtime. 20## Enable the RP runtime.
@@ -68,7 +71,7 @@ boot2-w25x10cl = []
68[dependencies] 71[dependencies]
69embassy-sync = { version = "0.5.0", path = "../embassy-sync" } 72embassy-sync = { version = "0.5.0", path = "../embassy-sync" }
70embassy-time-driver = { version = "0.1", path = "../embassy-time-driver", optional = true } 73embassy-time-driver = { version = "0.1", path = "../embassy-time-driver", optional = true }
71embassy-time = { version = "0.2", path = "../embassy-time" } 74embassy-time = { version = "0.3.0", path = "../embassy-time" }
72embassy-futures = { version = "0.1.0", path = "../embassy-futures" } 75embassy-futures = { version = "0.1.0", path = "../embassy-futures" }
73embassy-hal-internal = {version = "0.1.0", path = "../embassy-hal-internal", features = ["cortex-m", "prio-bits-2"] } 76embassy-hal-internal = {version = "0.1.0", path = "../embassy-hal-internal", features = ["cortex-m", "prio-bits-2"] }
74embassy-embedded-hal = {version = "0.1.0", path = "../embassy-embedded-hal" } 77embassy-embedded-hal = {version = "0.1.0", path = "../embassy-embedded-hal" }
@@ -103,5 +106,5 @@ rp2040-boot2 = "0.3"
103document-features = "0.2.7" 106document-features = "0.2.7"
104 107
105[dev-dependencies] 108[dev-dependencies]
106embassy-executor = { version = "0.4.0", path = "../embassy-executor", features = ["arch-std", "executor-thread"] } 109embassy-executor = { version = "0.5.0", path = "../embassy-executor", features = ["arch-std", "executor-thread"] }
107static_cell = { version = "2" } 110static_cell = { version = "2" }
diff --git a/embassy-rp/README.md b/embassy-rp/README.md
index 1d14eca52..8cf7da994 100644
--- a/embassy-rp/README.md
+++ b/embassy-rp/README.md
@@ -2,8 +2,26 @@
2 2
3HALs implement safe, idiomatic Rust APIs to use the hardware capabilities, so raw register manipulation is not needed. 3HALs implement safe, idiomatic Rust APIs to use the hardware capabilities, so raw register manipulation is not needed.
4 4
5The Embassy RP HAL targets the Raspberry Pi 2040 family of hardware. The HAL implements both blocking and async APIs 5The embassy-rp HAL targets the Raspberry Pi RP2040 microcontroller. The HAL implements both blocking and async APIs
6for many peripherals. The benefit of using the async APIs is that the HAL takes care of waiting for peripherals to 6for many peripherals. The benefit of using the async APIs is that the HAL takes care of waiting for peripherals to
7complete operations in low power mod and handling interrupts, so that applications can focus on more important matters. 7complete operations in low power mode and handling interrupts, so that applications can focus on more important matters.
8 8
9NOTE: The Embassy HALs can be used both for non-async and async operations. For async, you can choose which runtime you want to use. 9* [embassy-rp on crates.io](https://crates.io/crates/embassy-rp)
10* [Documentation](https://docs.embassy.dev/embassy-rp/)
11* [Source](https://github.com/embassy-rs/embassy/tree/main/embassy-rp)
12* [Examples](https://github.com/embassy-rs/embassy/tree/main/examples/rp/src/bin)
13
14## `embassy-time` time driver
15
16If the `time-driver` feature is enabled, the HAL uses the TIMER peripheral as a global time driver for [embassy-time](https://crates.io/crates/embassy-time), with a tick rate of 1MHz.
17
18## Embedded-hal
19
20The `embassy-rp` HAL implements the traits from [embedded-hal](https://crates.io/crates/embedded-hal) (v0.2 and 1.0) and [embedded-hal-async](https://crates.io/crates/embedded-hal-async), as well as [embedded-io](https://crates.io/crates/embedded-io) and [embedded-io-async](https://crates.io/crates/embedded-io-async).
21
22## Interoperability
23
24This crate can run on any executor.
25
26Optionally, some features requiring [`embassy-time`](https://crates.io/crates/embassy-time) can be activated with the `time` feature. If you enable it,
27you must link an `embassy-time` driver in your project.
diff --git a/embassy-stm32-wpan/Cargo.toml b/embassy-stm32-wpan/Cargo.toml
index 1780688cd..143eea019 100644
--- a/embassy-stm32-wpan/Cargo.toml
+++ b/embassy-stm32-wpan/Cargo.toml
@@ -10,10 +10,13 @@ src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-stm32
10target = "thumbv7em-none-eabihf" 10target = "thumbv7em-none-eabihf"
11features = ["stm32wb55rg"] 11features = ["stm32wb55rg"]
12 12
13[package.metadata.docs.rs]
14features = ["stm32wb55rg"]
15
13[dependencies] 16[dependencies]
14embassy-stm32 = { version = "0.1.0", path = "../embassy-stm32" } 17embassy-stm32 = { version = "0.1.0", path = "../embassy-stm32" }
15embassy-sync = { version = "0.5.0", path = "../embassy-sync" } 18embassy-sync = { version = "0.5.0", path = "../embassy-sync" }
16embassy-time = { version = "0.2", path = "../embassy-time", optional = true } 19embassy-time = { version = "0.3.0", path = "../embassy-time", optional = true }
17embassy-futures = { version = "0.1.0", path = "../embassy-futures" } 20embassy-futures = { version = "0.1.0", path = "../embassy-futures" }
18embassy-hal-internal = { version = "0.1.0", path = "../embassy-hal-internal" } 21embassy-hal-internal = { version = "0.1.0", path = "../embassy-hal-internal" }
19embassy-embedded-hal = { version = "0.1.0", path = "../embassy-embedded-hal" } 22embassy-embedded-hal = { version = "0.1.0", path = "../embassy-embedded-hal" }
diff --git a/embassy-stm32/Cargo.toml b/embassy-stm32/Cargo.toml
index 60fc86135..3b9f07e49 100644
--- a/embassy-stm32/Cargo.toml
+++ b/embassy-stm32/Cargo.toml
@@ -31,16 +31,20 @@ flavors = [
31 { regex_feature = "stm32wl.*", target = "thumbv7em-none-eabi" }, 31 { regex_feature = "stm32wl.*", target = "thumbv7em-none-eabi" },
32] 32]
33 33
34[package.metadata.docs.rs]
35features = ["defmt", "unstable-pac", "exti", "time-driver-any", "time", "stm32h755zi-cm7"]
36rustdoc-args = ["--cfg", "docsrs"]
37
34[dependencies] 38[dependencies]
35embassy-sync = { version = "0.5.0", path = "../embassy-sync" } 39embassy-sync = { version = "0.5.0", path = "../embassy-sync" }
36embassy-time = { version = "0.2", path = "../embassy-time", optional = true } 40embassy-time = { version = "0.3.0", path = "../embassy-time", optional = true }
37embassy-time-driver = { version = "0.1", path = "../embassy-time-driver", optional = true } 41embassy-time-driver = { version = "0.1", path = "../embassy-time-driver", optional = true }
38embassy-futures = { version = "0.1.0", path = "../embassy-futures" } 42embassy-futures = { version = "0.1.0", path = "../embassy-futures" }
39embassy-hal-internal = {version = "0.1.0", path = "../embassy-hal-internal", features = ["cortex-m", "prio-bits-4"] } 43embassy-hal-internal = {version = "0.1.0", path = "../embassy-hal-internal", features = ["cortex-m", "prio-bits-4"] }
40embassy-embedded-hal = {version = "0.1.0", path = "../embassy-embedded-hal" } 44embassy-embedded-hal = {version = "0.1.0", path = "../embassy-embedded-hal" }
41embassy-net-driver = { version = "0.2.0", path = "../embassy-net-driver" } 45embassy-net-driver = { version = "0.2.0", path = "../embassy-net-driver" }
42embassy-usb-driver = {version = "0.1.0", path = "../embassy-usb-driver" } 46embassy-usb-driver = {version = "0.1.0", path = "../embassy-usb-driver" }
43embassy-executor = { version = "0.4.0", path = "../embassy-executor", optional = true } 47embassy-executor = { version = "0.5.0", path = "../embassy-executor", optional = true }
44 48
45embedded-hal-02 = { package = "embedded-hal", version = "0.2.6", features = ["unproven"] } 49embedded-hal-02 = { package = "embedded-hal", version = "0.2.6", features = ["unproven"] }
46embedded-hal-1 = { package = "embedded-hal", version = "1.0" } 50embedded-hal-1 = { package = "embedded-hal", version = "1.0" }
@@ -58,7 +62,8 @@ futures = { version = "0.3.17", default-features = false, features = ["async-awa
58rand_core = "0.6.3" 62rand_core = "0.6.3"
59sdio-host = "0.5.0" 63sdio-host = "0.5.0"
60critical-section = "1.1" 64critical-section = "1.1"
61stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-656ecf6714fa34fdfb3b3e2f2cd034bffed3f303" } 65stm32-metapac = { version = "15" }
66#stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-656ecf6714fa34fdfb3b3e2f2cd034bffed3f303" }
62vcell = "0.1.3" 67vcell = "0.1.3"
63bxcan = "0.7.0" 68bxcan = "0.7.0"
64nb = "1.0.0" 69nb = "1.0.0"
@@ -76,7 +81,8 @@ critical-section = { version = "1.1", features = ["std"] }
76[build-dependencies] 81[build-dependencies]
77proc-macro2 = "1.0.36" 82proc-macro2 = "1.0.36"
78quote = "1.0.15" 83quote = "1.0.15"
79stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-656ecf6714fa34fdfb3b3e2f2cd034bffed3f303", default-features = false, features = ["metadata"]} 84stm32-metapac = { version = "15", default-features = false, features = ["metadata"]}
85#stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-656ecf6714fa34fdfb3b3e2f2cd034bffed3f303", default-features = false, features = ["metadata"]}
80 86
81 87
82[features] 88[features]
diff --git a/embassy-stm32/README.md b/embassy-stm32/README.md
index 23c1bf967..e9ae455a4 100644
--- a/embassy-stm32/README.md
+++ b/embassy-stm32/README.md
@@ -19,7 +19,20 @@ In practice, this works as follows:
19 19
20Be aware that, while embassy-stm32 strives to consistently support all peripherals across all chips, this approach can lead to slightly different APIs and capabilities being available on different families. Check the [documentation](https://docs.embassy.dev/embassy-stm32/) for the specific chip you’re using to confirm exactly what’s available. 20Be aware that, while embassy-stm32 strives to consistently support all peripherals across all chips, this approach can lead to slightly different APIs and capabilities being available on different families. Check the [documentation](https://docs.embassy.dev/embassy-stm32/) for the specific chip you’re using to confirm exactly what’s available.
21 21
22## embassy-time Time Driver 22## Embedded-hal
23If the `time` feature is enabled, embassy-stm32 provides a time driver for use with [embassy-time](https://docs.embassy.dev/embassy-time/). You can pick which hardware timer is used for this internally via the `time-driver-*` features, or let embassy pick with `time-driver-any`.
24 23
25embassy-time has a default tick rate of 1MHz, which is fast enough to cause problems with the 16-bit timers currently supported by the embassy-stm32 time driver (specifically, if a critical section delays an IRQ by more than 32ms). To avoid this, it’s recommended to pick a lower tick rate. 32.768kHz is a reasonable default for many purposes. \ No newline at end of file 24The `embassy-stm32` HAL implements the traits from [embedded-hal](https://crates.io/crates/embedded-hal) (v0.2 and 1.0) and [embedded-hal-async](https://crates.io/crates/embedded-hal-async), as well as [embedded-io](https://crates.io/crates/embedded-io) and [embedded-io-async](https://crates.io/crates/embedded-io-async).
25
26## `embassy-time` time driver
27If a `time-driver-*` feature is enabled, embassy-stm32 provides a time driver for use with [embassy-time](https://docs.embassy.dev/embassy-time/). You can pick which hardware timer is used for this internally via the `time-driver-tim*` features, or let embassy pick with `time-driver-any`.
28
29embassy-time has a default tick rate of 1MHz, which is fast enough to cause problems with the 16-bit timers currently supported by the embassy-stm32 time driver (specifically, if a critical section delays an IRQ by more than 32ms). To avoid this, it’s recommended to pick a lower tick rate. 32.768kHz is a reasonable default for many purposes.
30
31## Interoperability
32
33This crate can run on any executor.
34
35Optionally, some features requiring [`embassy-time`](https://crates.io/crates/embassy-time) can be activated with the `time` feature. If you enable it,
36you must link an `embassy-time` driver in your project.
37
38The `low-power` feature integrates specifically with `embassy-executor`, it can't be ued on other executors for now.
diff --git a/embassy-stm32/src/lib.rs b/embassy-stm32/src/lib.rs
index 18871e83b..a465fccd8 100644
--- a/embassy-stm32/src/lib.rs
+++ b/embassy-stm32/src/lib.rs
@@ -1,5 +1,9 @@
1#![cfg_attr(not(test), no_std)] 1#![cfg_attr(not(test), no_std)]
2#![allow(async_fn_in_trait)] 2#![allow(async_fn_in_trait)]
3#![cfg_attr(
4 docsrs,
5 doc = "<div style='padding:30px;background:#810;color:#fff;text-align:center;'><p>You might want to <a href='https://docs.embassy.dev/embassy-stm32'>browse the `embassy-stm32` documentation on the Embassy website</a> instead.</p><p>The documentation here on `docs.rs` is built for a single chip only (STM32H755 in particular), while on the Embassy website you can pick your exact chip from the top menu. Available peripherals and their APIs change depending on the chip.</p></div>\n\n"
6)]
3#![doc = include_str!("../README.md")] 7#![doc = include_str!("../README.md")]
4#![warn(missing_docs)] 8#![warn(missing_docs)]
5 9
diff --git a/embassy-time-driver/CHANGELOG.md b/embassy-time-driver/CHANGELOG.md
deleted file mode 100644
index d8c0c7d08..000000000
--- a/embassy-time-driver/CHANGELOG.md
+++ /dev/null
@@ -1,51 +0,0 @@
1# Changelog
2
3All notable changes to this project will be documented in this file.
4
5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
8## 0.2.0 - 2023-12-04
9
10- Added tick rates in multiples of 10 kHz
11- Remove nightly and unstable-traits features in preparation for 1.75.
12- Update heapless to 0.8.
13
14## 0.1.5 - 2023-10-16
15
16- Added `links` key to Cargo.toml, to prevent multiple copies of this crate in the same binary.
17 Needed because different copies might get different tick rates, causing
18 wrong delays if the time driver is using one copy and user code is using another.
19 This is especially common when mixing crates from crates.io and git.
20
21## 0.1.4 - 2023-10-12
22
23- Added more tick rates
24
25## 0.1.3 - 2023-08-28
26
27- Update `embedded-hal-async` to `1.0.0-rc.2`
28- Update `embedded-hal v1` to `1.0.0-rc.2`
29
30## 0.1.2 - 2023-07-05
31
32- Update `embedded-hal-async` to `0.2.0-alpha.2`.
33- Update `embedded-hal v1` to `1.0.0-alpha.11`. (Note: v0.2 support is kept unchanged).
34
35## 0.1.1 - 2023-04-13
36
37- Update `embedded-hal-async` to `0.2.0-alpha.1` (uses `async fn` in traits).
38- Update `embedded-hal v1` to `1.0.0-alpha.10`. (Note: v0.2 support is kept unchanged).
39- Remove dep on `embassy-sync`.
40- Fix reentrancy issues in the `std` time driver (#1177)
41- Add `Duration::from_hz()`.
42- impl `From` conversions to/from `core::time::Duration`.
43- Add `#[must_use]` to all futures.
44- Add inherent `async fn tick()` to `Ticker`, so you can use it directly without the `Stream` trait.
45- Add more tick rates.
46- impl `Default` for `Signal`
47- Remove unnecessary uses of `atomic-polyfill`
48
49## 0.1.0 - 2022-08-26
50
51- First release
diff --git a/embassy-time-driver/Cargo.toml b/embassy-time-driver/Cargo.toml
index 2ed250d4d..c6c23f698 100644
--- a/embassy-time-driver/Cargo.toml
+++ b/embassy-time-driver/Cargo.toml
@@ -388,4 +388,4 @@ wasm-timer = { version = "0.2.5", optional = true }
388[dev-dependencies] 388[dev-dependencies]
389serial_test = "0.9" 389serial_test = "0.9"
390critical-section = { version = "1.1", features = ["std"] } 390critical-section = { version = "1.1", features = ["std"] }
391embassy-executor = { version = "0.4.0", path = "../embassy-executor" } 391embassy-executor = { version = "0.5.0", path = "../embassy-executor" }
diff --git a/embassy-time-queue-driver/Cargo.toml b/embassy-time-queue-driver/Cargo.toml
new file mode 100644
index 000000000..85ee1da1b
--- /dev/null
+++ b/embassy-time-queue-driver/Cargo.toml
@@ -0,0 +1,25 @@
1[package]
2name = "embassy-time-queue-driver"
3version = "0.1.0"
4edition = "2021"
5description = "Timer queue driver trait for embassy-time"
6repository = "https://github.com/embassy-rs/embassy"
7readme = "README.md"
8license = "MIT OR Apache-2.0"
9categories = [
10 "embedded",
11 "no-std",
12 "concurrency",
13 "asynchronous",
14]
15
16# Prevent multiple copies of this crate in the same binary.
17# Needed because different copies might get different tick rates, causing
18# wrong delays if the time driver is using one copy and user code is using another.
19# This is especially common when mixing crates from crates.io and git.
20links = "embassy-time-queue"
21
22[package.metadata.embassy_docs]
23src_base = "https://github.com/embassy-rs/embassy/blob/embassy-time-queue-driver-v$VERSION/embassy-time-queue-driver/src/"
24src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-time-queue-driver/src/"
25target = "x86_64-unknown-linux-gnu"
diff --git a/embassy-time-queue-driver/README.md b/embassy-time-queue-driver/README.md
new file mode 100644
index 000000000..8852b0358
--- /dev/null
+++ b/embassy-time-queue-driver/README.md
@@ -0,0 +1,8 @@
1# embassy-time-queue-driver
2
3This crate contains the driver trait used by the [`embassy-time`](https://crates.io/crates/embassy-time) timer queue.
4
5You should rarely need to use this crate directly. Only use it when implementing your own timer queue.
6
7There is two timer queue implementations, one in `embassy-time` enabled by the `generic-queue` feature, and
8another in `embassy-executor` enabled by the `integrated-timers` feature.
diff --git a/embassy-time-queue-driver/build.rs b/embassy-time-queue-driver/build.rs
new file mode 100644
index 000000000..f328e4d9d
--- /dev/null
+++ b/embassy-time-queue-driver/build.rs
@@ -0,0 +1 @@
fn main() {}
diff --git a/embassy-time/src/queue.rs b/embassy-time-queue-driver/src/lib.rs
index d65197c54..50736e8c7 100644
--- a/embassy-time/src/queue.rs
+++ b/embassy-time-queue-driver/src/lib.rs
@@ -1,20 +1,14 @@
1//! Timer queue implementation 1#![no_std]
2//! 2#![doc = include_str!("../README.md")]
3//! This module defines the interface a timer queue needs to implement to power the `embassy_time` module. 3#![warn(missing_docs)]
4//! 4
5//! # Implementing a timer queue 5//! ## Implementing a timer queue
6//! 6//!
7//! - Define a struct `MyTimerQueue` 7//! - Define a struct `MyTimerQueue`
8//! - Implement [`TimerQueue`] for it 8//! - Implement [`TimerQueue`] for it
9//! - Register it as the global timer queue with [`timer_queue_impl`](crate::timer_queue_impl). 9//! - Register it as the global timer queue with [`timer_queue_impl`](crate::timer_queue_impl).
10//! 10//!
11//! # Linkage details 11//! ## Example
12//!
13//! Check the documentation of the [`driver`](crate::driver) module for more information.
14//!
15//! Similarly to driver, if there is none or multiple timer queues in the crate tree, linking will fail.
16//!
17//! # Example
18//! 12//!
19//! ``` 13//! ```
20//! use core::task::Waker; 14//! use core::task::Waker;
@@ -25,23 +19,29 @@
25//! struct MyTimerQueue{}; // not public! 19//! struct MyTimerQueue{}; // not public!
26//! 20//!
27//! impl TimerQueue for MyTimerQueue { 21//! impl TimerQueue for MyTimerQueue {
28//! fn schedule_wake(&'static self, at: Instant, waker: &Waker) { 22//! fn schedule_wake(&'static self, at: u64, waker: &Waker) {
29//! todo!() 23//! todo!()
30//! } 24//! }
31//! } 25//! }
32//! ``` 26//!
33//! ```ignore 27//! embassy_time_queue_driver::timer_queue_impl!(static QUEUE: MyTimerQueue = MyTimerQueue{});
34//! embassy_time::timer_queue_impl!(static QUEUE: MyTimerQueue = MyTimerQueue{});
35//! ``` 28//! ```
36use core::task::Waker; 29use core::task::Waker;
37 30
38use crate::Instant;
39
40/// Timer queue 31/// Timer queue
41pub trait TimerQueue { 32pub trait TimerQueue {
42 /// Schedules a waker in the queue to be awoken at moment `at`. 33 /// Schedules a waker in the queue to be awoken at moment `at`.
43 /// If this moment is in the past, the waker might be awoken immediately. 34 /// If this moment is in the past, the waker might be awoken immediately.
44 fn schedule_wake(&'static self, at: Instant, waker: &Waker); 35 fn schedule_wake(&'static self, at: u64, waker: &Waker);
36}
37
38extern "Rust" {
39 fn _embassy_time_schedule_wake(at: u64, waker: &Waker);
40}
41
42/// Schedule the given waker to be woken at `at`.
43pub fn schedule_wake(at: u64, waker: &Waker) {
44 unsafe { _embassy_time_schedule_wake(at, waker) }
45} 45}
46 46
47/// Set the TimerQueue implementation. 47/// Set the TimerQueue implementation.
@@ -53,8 +53,8 @@ macro_rules! timer_queue_impl {
53 static $name: $t = $val; 53 static $name: $t = $val;
54 54
55 #[no_mangle] 55 #[no_mangle]
56 fn _embassy_time_schedule_wake(at: $crate::Instant, waker: &core::task::Waker) { 56 fn _embassy_time_schedule_wake(at: u64, waker: &core::task::Waker) {
57 <$t as $crate::queue::TimerQueue>::schedule_wake(&$name, at, waker); 57 <$t as $crate::TimerQueue>::schedule_wake(&$name, at, waker);
58 } 58 }
59 }; 59 };
60} 60}
diff --git a/embassy-time/CHANGELOG.md b/embassy-time/CHANGELOG.md
index d8c0c7d08..df093949f 100644
--- a/embassy-time/CHANGELOG.md
+++ b/embassy-time/CHANGELOG.md
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), 5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7 7
8## 0.3.0 - 2024-01-11
9
10- Update `embedded-hal-async` to `1.0.0`
11- Update `embedded-hal v1` to `1.0.0`
12- Split the time driver to a separate `embassy-time-driver` crate.
13
8## 0.2.0 - 2023-12-04 14## 0.2.0 - 2023-12-04
9 15
10- Added tick rates in multiples of 10 kHz 16- Added tick rates in multiples of 10 kHz
diff --git a/embassy-time/Cargo.toml b/embassy-time/Cargo.toml
index 729a2bd4f..6b1c7cc58 100644
--- a/embassy-time/Cargo.toml
+++ b/embassy-time/Cargo.toml
@@ -1,6 +1,6 @@
1[package] 1[package]
2name = "embassy-time" 2name = "embassy-time"
3version = "0.2.0" 3version = "0.3.0"
4edition = "2021" 4edition = "2021"
5description = "Instant and Duration for embedded no-std systems, with async timer support" 5description = "Instant and Duration for embedded no-std systems, with async timer support"
6repository = "https://github.com/embassy-rs/embassy" 6repository = "https://github.com/embassy-rs/embassy"
@@ -398,6 +398,7 @@ tick-hz-5_242_880_000 = ["embassy-time-driver/tick-hz-5_242_880_000"]
398 398
399[dependencies] 399[dependencies]
400embassy-time-driver = { version = "0.1.0", path = "../embassy-time-driver" } 400embassy-time-driver = { version = "0.1.0", path = "../embassy-time-driver" }
401embassy-time-queue-driver = { version = "0.1.0", path = "../embassy-time-queue-driver" }
401 402
402defmt = { version = "0.3", optional = true } 403defmt = { version = "0.3", optional = true }
403log = { version = "0.4.14", optional = true } 404log = { version = "0.4.14", optional = true }
@@ -421,4 +422,4 @@ wasm-timer = { version = "0.2.5", optional = true }
421[dev-dependencies] 422[dev-dependencies]
422serial_test = "0.9" 423serial_test = "0.9"
423critical-section = { version = "1.1", features = ["std"] } 424critical-section = { version = "1.1", features = ["std"] }
424embassy-executor = { version = "0.4.0", path = "../embassy-executor" } 425embassy-executor = { version = "0.5.0", path = "../embassy-executor" }
diff --git a/embassy-time/src/driver_mock.rs b/embassy-time/src/driver_mock.rs
index 7abc2bd70..8587f9172 100644
--- a/embassy-time/src/driver_mock.rs
+++ b/embassy-time/src/driver_mock.rs
@@ -1,8 +1,8 @@
1use core::cell::RefCell; 1use core::cell::RefCell;
2 2
3use critical_section::Mutex as CsMutex; 3use critical_section::Mutex as CsMutex;
4use embassy_time_driver::{AlarmHandle, Driver};
4 5
5use crate::driver::{AlarmHandle, Driver};
6use crate::{Duration, Instant}; 6use crate::{Duration, Instant};
7 7
8/// A mock driver that can be manually advanced. 8/// A mock driver that can be manually advanced.
@@ -28,7 +28,7 @@ use crate::{Duration, Instant};
28/// ``` 28/// ```
29pub struct MockDriver(CsMutex<RefCell<InnerMockDriver>>); 29pub struct MockDriver(CsMutex<RefCell<InnerMockDriver>>);
30 30
31crate::driver::time_driver_impl!(static DRIVER: MockDriver = MockDriver::new()); 31embassy_time_driver::time_driver_impl!(static DRIVER: MockDriver = MockDriver::new());
32 32
33impl MockDriver { 33impl MockDriver {
34 /// Creates a new mock driver. 34 /// Creates a new mock driver.
diff --git a/embassy-time/src/driver_std.rs b/embassy-time/src/driver_std.rs
index 3b5524f9e..d182f8331 100644
--- a/embassy-time/src/driver_std.rs
+++ b/embassy-time/src/driver_std.rs
@@ -6,8 +6,7 @@ use std::time::{Duration as StdDuration, Instant as StdInstant};
6use std::{mem, ptr, thread}; 6use std::{mem, ptr, thread};
7 7
8use critical_section::Mutex as CsMutex; 8use critical_section::Mutex as CsMutex;
9 9use embassy_time_driver::{AlarmHandle, Driver};
10use crate::driver::{AlarmHandle, Driver};
11 10
12const ALARM_COUNT: usize = 4; 11const ALARM_COUNT: usize = 4;
13 12
@@ -45,7 +44,7 @@ struct TimeDriver {
45} 44}
46 45
47const ALARM_NEW: AlarmState = AlarmState::new(); 46const ALARM_NEW: AlarmState = AlarmState::new();
48crate::driver::time_driver_impl!(static DRIVER: TimeDriver = TimeDriver { 47embassy_time_driver::time_driver_impl!(static DRIVER: TimeDriver = TimeDriver {
49 alarm_count: AtomicU8::new(0), 48 alarm_count: AtomicU8::new(0),
50 49
51 once: Once::new(), 50 once: Once::new(),
diff --git a/embassy-time/src/driver_wasm.rs b/embassy-time/src/driver_wasm.rs
index d75856c26..ad884f060 100644
--- a/embassy-time/src/driver_wasm.rs
+++ b/embassy-time/src/driver_wasm.rs
@@ -4,11 +4,10 @@ use std::mem::MaybeUninit;
4use std::ptr; 4use std::ptr;
5use std::sync::{Mutex, Once}; 5use std::sync::{Mutex, Once};
6 6
7use embassy_time_driver::{AlarmHandle, Driver};
7use wasm_bindgen::prelude::*; 8use wasm_bindgen::prelude::*;
8use wasm_timer::Instant as StdInstant; 9use wasm_timer::Instant as StdInstant;
9 10
10use crate::driver::{AlarmHandle, Driver};
11
12const ALARM_COUNT: usize = 4; 11const ALARM_COUNT: usize = 4;
13 12
14struct AlarmState { 13struct AlarmState {
@@ -42,7 +41,7 @@ struct TimeDriver {
42} 41}
43 42
44const ALARM_NEW: AlarmState = AlarmState::new(); 43const ALARM_NEW: AlarmState = AlarmState::new();
45crate::driver::time_driver_impl!(static DRIVER: TimeDriver = TimeDriver { 44embassy_time_driver::time_driver_impl!(static DRIVER: TimeDriver = TimeDriver {
46 alarm_count: AtomicU8::new(0), 45 alarm_count: AtomicU8::new(0),
47 once: Once::new(), 46 once: Once::new(),
48 alarms: UninitCell::uninit(), 47 alarms: UninitCell::uninit(),
diff --git a/embassy-time/src/instant.rs b/embassy-time/src/instant.rs
index 5571cdd15..909f1b173 100644
--- a/embassy-time/src/instant.rs
+++ b/embassy-time/src/instant.rs
@@ -1,7 +1,7 @@
1use core::fmt; 1use core::fmt;
2use core::ops::{Add, AddAssign, Sub, SubAssign}; 2use core::ops::{Add, AddAssign, Sub, SubAssign};
3 3
4use super::{driver, Duration, GCD_1K, GCD_1M, TICK_HZ}; 4use super::{Duration, GCD_1K, GCD_1M, TICK_HZ};
5 5
6#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord)] 6#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord)]
7#[cfg_attr(feature = "defmt", derive(defmt::Format))] 7#[cfg_attr(feature = "defmt", derive(defmt::Format))]
@@ -18,7 +18,9 @@ impl Instant {
18 18
19 /// Returns an Instant representing the current time. 19 /// Returns an Instant representing the current time.
20 pub fn now() -> Instant { 20 pub fn now() -> Instant {
21 Instant { ticks: driver::now() } 21 Instant {
22 ticks: embassy_time_driver::now(),
23 }
22 } 24 }
23 25
24 /// Create an Instant from a tick count since system boot. 26 /// Create an Instant from a tick count since system boot.
diff --git a/embassy-time/src/lib.rs b/embassy-time/src/lib.rs
index 3f8c09f1a..d27eb92f6 100644
--- a/embassy-time/src/lib.rs
+++ b/embassy-time/src/lib.rs
@@ -10,12 +10,9 @@
10// This mod MUST go first, so that the others see its macros. 10// This mod MUST go first, so that the others see its macros.
11pub(crate) mod fmt; 11pub(crate) mod fmt;
12 12
13pub use embassy_time_driver as driver;
14
15mod delay; 13mod delay;
16mod duration; 14mod duration;
17mod instant; 15mod instant;
18pub mod queue;
19mod timer; 16mod timer;
20 17
21#[cfg(feature = "mock-driver")] 18#[cfg(feature = "mock-driver")]
@@ -32,8 +29,8 @@ mod driver_wasm;
32mod queue_generic; 29mod queue_generic;
33 30
34pub use delay::{block_for, Delay}; 31pub use delay::{block_for, Delay};
35pub use driver::TICK_HZ;
36pub use duration::Duration; 32pub use duration::Duration;
33pub use embassy_time_driver::TICK_HZ;
37pub use instant::Instant; 34pub use instant::Instant;
38pub use timer::{with_timeout, Ticker, TimeoutError, Timer}; 35pub use timer::{with_timeout, Ticker, TimeoutError, Timer};
39 36
diff --git a/embassy-time/src/queue_generic.rs b/embassy-time/src/queue_generic.rs
index 829368ffc..cf7a986d5 100644
--- a/embassy-time/src/queue_generic.rs
+++ b/embassy-time/src/queue_generic.rs
@@ -3,10 +3,10 @@ use core::cmp::{min, Ordering};
3use core::task::Waker; 3use core::task::Waker;
4 4
5use critical_section::Mutex; 5use critical_section::Mutex;
6use embassy_time_driver::{allocate_alarm, set_alarm, set_alarm_callback, AlarmHandle};
7use embassy_time_queue_driver::TimerQueue;
6use heapless::Vec; 8use heapless::Vec;
7 9
8use crate::driver::{allocate_alarm, set_alarm, set_alarm_callback, AlarmHandle};
9use crate::queue::TimerQueue;
10use crate::Instant; 10use crate::Instant;
11 11
12#[cfg(feature = "generic-queue-8")] 12#[cfg(feature = "generic-queue-8")]
@@ -167,12 +167,12 @@ impl Queue {
167} 167}
168 168
169impl TimerQueue for Queue { 169impl TimerQueue for Queue {
170 fn schedule_wake(&'static self, at: Instant, waker: &Waker) { 170 fn schedule_wake(&'static self, at: u64, waker: &Waker) {
171 Queue::schedule_wake(self, at, waker); 171 Queue::schedule_wake(self, Instant::from_ticks(at), waker);
172 } 172 }
173} 173}
174 174
175crate::timer_queue_impl!(static QUEUE: Queue = Queue::new()); 175embassy_time_queue_driver::timer_queue_impl!(static QUEUE: Queue = Queue::new());
176 176
177#[cfg(test)] 177#[cfg(test)]
178#[cfg(feature = "mock-driver")] 178#[cfg(feature = "mock-driver")]
diff --git a/embassy-time/src/timer.rs b/embassy-time/src/timer.rs
index 2705ba03f..565a65cb8 100644
--- a/embassy-time/src/timer.rs
+++ b/embassy-time/src/timer.rs
@@ -1,6 +1,6 @@
1use core::future::{poll_fn, Future}; 1use core::future::{poll_fn, Future};
2use core::pin::Pin; 2use core::pin::Pin;
3use core::task::{Context, Poll, Waker}; 3use core::task::{Context, Poll};
4 4
5use futures_util::future::{select, Either}; 5use futures_util::future::{select, Either};
6use futures_util::stream::FusedStream; 6use futures_util::stream::FusedStream;
@@ -116,7 +116,7 @@ impl Future for Timer {
116 if self.yielded_once && self.expires_at <= Instant::now() { 116 if self.yielded_once && self.expires_at <= Instant::now() {
117 Poll::Ready(()) 117 Poll::Ready(())
118 } else { 118 } else {
119 schedule_wake(self.expires_at, cx.waker()); 119 embassy_time_queue_driver::schedule_wake(self.expires_at.as_ticks(), cx.waker());
120 self.yielded_once = true; 120 self.yielded_once = true;
121 Poll::Pending 121 Poll::Pending
122 } 122 }
@@ -185,7 +185,7 @@ impl Ticker {
185 self.expires_at += dur; 185 self.expires_at += dur;
186 Poll::Ready(()) 186 Poll::Ready(())
187 } else { 187 } else {
188 schedule_wake(self.expires_at, cx.waker()); 188 embassy_time_queue_driver::schedule_wake(self.expires_at.as_ticks(), cx.waker());
189 Poll::Pending 189 Poll::Pending
190 } 190 }
191 }) 191 })
@@ -202,7 +202,7 @@ impl Stream for Ticker {
202 self.expires_at += dur; 202 self.expires_at += dur;
203 Poll::Ready(Some(())) 203 Poll::Ready(Some(()))
204 } else { 204 } else {
205 schedule_wake(self.expires_at, cx.waker()); 205 embassy_time_queue_driver::schedule_wake(self.expires_at.as_ticks(), cx.waker());
206 Poll::Pending 206 Poll::Pending
207 } 207 }
208 } 208 }
@@ -214,11 +214,3 @@ impl FusedStream for Ticker {
214 false 214 false
215 } 215 }
216} 216}
217
218extern "Rust" {
219 fn _embassy_time_schedule_wake(at: Instant, waker: &Waker);
220}
221
222fn schedule_wake(at: Instant, waker: &Waker) {
223 unsafe { _embassy_time_schedule_wake(at, waker) }
224}
diff --git a/embassy-usb-dfu/Cargo.toml b/embassy-usb-dfu/Cargo.toml
index 2d8895123..6087bcd7d 100644
--- a/embassy-usb-dfu/Cargo.toml
+++ b/embassy-usb-dfu/Cargo.toml
@@ -21,7 +21,7 @@ embassy-boot = { version = "0.1.1", path = "../embassy-boot" }
21# embassy-embedded-hal = { version = "0.1.0", path = "../embassy-embedded-hal" } 21# embassy-embedded-hal = { version = "0.1.0", path = "../embassy-embedded-hal" }
22embassy-futures = { version = "0.1.1", path = "../embassy-futures" } 22embassy-futures = { version = "0.1.1", path = "../embassy-futures" }
23embassy-sync = { version = "0.5.0", path = "../embassy-sync" } 23embassy-sync = { version = "0.5.0", path = "../embassy-sync" }
24embassy-time = { version = "0.2.0", path = "../embassy-time" } 24embassy-time = { version = "0.3.0", path = "../embassy-time" }
25embassy-usb = { version = "0.1.0", path = "../embassy-usb", default-features = false } 25embassy-usb = { version = "0.1.0", path = "../embassy-usb", default-features = false }
26embedded-storage = { version = "0.3.1" } 26embedded-storage = { version = "0.3.1" }
27esp32c3-hal = { version = "0.13.0", optional = true, default-features = false } 27esp32c3-hal = { version = "0.13.0", optional = true, default-features = false }
diff --git a/embassy-usb-driver/Cargo.toml b/embassy-usb-driver/Cargo.toml
index d658f9ec7..460cb306a 100644
--- a/embassy-usb-driver/Cargo.toml
+++ b/embassy-usb-driver/Cargo.toml
@@ -12,5 +12,8 @@ src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-usb-d
12features = ["defmt"] 12features = ["defmt"]
13target = "thumbv7em-none-eabi" 13target = "thumbv7em-none-eabi"
14 14
15[package.metadata.docs.rs]
16features = ["defmt"]
17
15[dependencies] 18[dependencies]
16defmt = { version = "0.3", optional = true } 19defmt = { version = "0.3", optional = true }
diff --git a/embassy-usb/Cargo.toml b/embassy-usb/Cargo.toml
index e6e6b1954..029754e73 100644
--- a/embassy-usb/Cargo.toml
+++ b/embassy-usb/Cargo.toml
@@ -10,6 +10,9 @@ src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-usb/s
10features = ["defmt", "usbd-hid"] 10features = ["defmt", "usbd-hid"]
11target = "thumbv7em-none-eabi" 11target = "thumbv7em-none-eabi"
12 12
13[package.metadata.docs.rs]
14features = ["defmt", "usbd-hid"]
15
13[features] 16[features]
14defmt = ["dep:defmt", "embassy-usb-driver/defmt"] 17defmt = ["dep:defmt", "embassy-usb-driver/defmt"]
15usbd-hid = ["dep:usbd-hid", "dep:ssmarshal"] 18usbd-hid = ["dep:usbd-hid", "dep:ssmarshal"]
diff --git a/examples/boot/application/nrf/Cargo.toml b/examples/boot/application/nrf/Cargo.toml
index 7b62d9a20..2534cad69 100644
--- a/examples/boot/application/nrf/Cargo.toml
+++ b/examples/boot/application/nrf/Cargo.toml
@@ -6,8 +6,8 @@ license = "MIT OR Apache-2.0"
6 6
7[dependencies] 7[dependencies]
8embassy-sync = { version = "0.5.0", path = "../../../../embassy-sync" } 8embassy-sync = { version = "0.5.0", path = "../../../../embassy-sync" }
9embassy-executor = { version = "0.4.0", path = "../../../../embassy-executor", features = ["task-arena-size-16384", "arch-cortex-m", "executor-thread", "integrated-timers", "arch-cortex-m", "executor-thread"] } 9embassy-executor = { version = "0.5.0", path = "../../../../embassy-executor", features = ["task-arena-size-16384", "arch-cortex-m", "executor-thread", "integrated-timers", "arch-cortex-m", "executor-thread"] }
10embassy-time = { version = "0.2", path = "../../../../embassy-time", features = [] } 10embassy-time = { version = "0.3.0", path = "../../../../embassy-time", features = [] }
11embassy-nrf = { version = "0.1.0", path = "../../../../embassy-nrf", features = ["time-driver-rtc1", "gpiote", ] } 11embassy-nrf = { version = "0.1.0", path = "../../../../embassy-nrf", features = ["time-driver-rtc1", "gpiote", ] }
12embassy-boot = { version = "0.1.0", path = "../../../../embassy-boot", features = [] } 12embassy-boot = { version = "0.1.0", path = "../../../../embassy-boot", features = [] }
13embassy-boot-nrf = { version = "0.1.0", path = "../../../../embassy-boot-nrf", features = [] } 13embassy-boot-nrf = { version = "0.1.0", path = "../../../../embassy-boot-nrf", features = [] }
diff --git a/examples/boot/application/rp/Cargo.toml b/examples/boot/application/rp/Cargo.toml
index ccaa9f8ef..56362cb7e 100644
--- a/examples/boot/application/rp/Cargo.toml
+++ b/examples/boot/application/rp/Cargo.toml
@@ -6,8 +6,8 @@ license = "MIT OR Apache-2.0"
6 6
7[dependencies] 7[dependencies]
8embassy-sync = { version = "0.5.0", path = "../../../../embassy-sync" } 8embassy-sync = { version = "0.5.0", path = "../../../../embassy-sync" }
9embassy-executor = { version = "0.4.0", path = "../../../../embassy-executor", features = ["task-arena-size-16384", "arch-cortex-m", "executor-thread", "integrated-timers", "arch-cortex-m", "executor-thread"] } 9embassy-executor = { version = "0.5.0", path = "../../../../embassy-executor", features = ["task-arena-size-16384", "arch-cortex-m", "executor-thread", "integrated-timers", "arch-cortex-m", "executor-thread"] }
10embassy-time = { version = "0.2", path = "../../../../embassy-time", features = [] } 10embassy-time = { version = "0.3.0", path = "../../../../embassy-time", features = [] }
11embassy-rp = { version = "0.1.0", path = "../../../../embassy-rp", features = ["time-driver", ] } 11embassy-rp = { version = "0.1.0", path = "../../../../embassy-rp", features = ["time-driver", ] }
12embassy-boot-rp = { version = "0.1.0", path = "../../../../embassy-boot-rp", features = [] } 12embassy-boot-rp = { version = "0.1.0", path = "../../../../embassy-boot-rp", features = [] }
13embassy-embedded-hal = { version = "0.1.0", path = "../../../../embassy-embedded-hal" } 13embassy-embedded-hal = { version = "0.1.0", path = "../../../../embassy-embedded-hal" }
diff --git a/examples/boot/application/stm32f3/Cargo.toml b/examples/boot/application/stm32f3/Cargo.toml
index f4bc285bf..4a4d091f6 100644
--- a/examples/boot/application/stm32f3/Cargo.toml
+++ b/examples/boot/application/stm32f3/Cargo.toml
@@ -6,8 +6,8 @@ license = "MIT OR Apache-2.0"
6 6
7[dependencies] 7[dependencies]
8embassy-sync = { version = "0.5.0", path = "../../../../embassy-sync" } 8embassy-sync = { version = "0.5.0", path = "../../../../embassy-sync" }
9embassy-executor = { version = "0.4.0", path = "../../../../embassy-executor", features = ["task-arena-size-8192", "arch-cortex-m", "executor-thread", "integrated-timers"] } 9embassy-executor = { version = "0.5.0", path = "../../../../embassy-executor", features = ["task-arena-size-8192", "arch-cortex-m", "executor-thread", "integrated-timers"] }
10embassy-time = { version = "0.2", path = "../../../../embassy-time", features = [ "tick-hz-32_768"] } 10embassy-time = { version = "0.3.0", path = "../../../../embassy-time", features = [ "tick-hz-32_768"] }
11embassy-stm32 = { version = "0.1.0", path = "../../../../embassy-stm32", features = ["stm32f303re", "time-driver-any", "exti"] } 11embassy-stm32 = { version = "0.1.0", path = "../../../../embassy-stm32", features = ["stm32f303re", "time-driver-any", "exti"] }
12embassy-boot-stm32 = { version = "0.1.0", path = "../../../../embassy-boot-stm32" } 12embassy-boot-stm32 = { version = "0.1.0", path = "../../../../embassy-boot-stm32" }
13embassy-embedded-hal = { version = "0.1.0", path = "../../../../embassy-embedded-hal" } 13embassy-embedded-hal = { version = "0.1.0", path = "../../../../embassy-embedded-hal" }
diff --git a/examples/boot/application/stm32f7/Cargo.toml b/examples/boot/application/stm32f7/Cargo.toml
index 575220ade..00e283cf4 100644
--- a/examples/boot/application/stm32f7/Cargo.toml
+++ b/examples/boot/application/stm32f7/Cargo.toml
@@ -6,8 +6,8 @@ license = "MIT OR Apache-2.0"
6 6
7[dependencies] 7[dependencies]
8embassy-sync = { version = "0.5.0", path = "../../../../embassy-sync" } 8embassy-sync = { version = "0.5.0", path = "../../../../embassy-sync" }
9embassy-executor = { version = "0.4.0", path = "../../../../embassy-executor", features = ["task-arena-size-8192", "arch-cortex-m", "executor-thread", "integrated-timers"] } 9embassy-executor = { version = "0.5.0", path = "../../../../embassy-executor", features = ["task-arena-size-8192", "arch-cortex-m", "executor-thread", "integrated-timers"] }
10embassy-time = { version = "0.2", path = "../../../../embassy-time", features = [ "tick-hz-32_768"] } 10embassy-time = { version = "0.3.0", path = "../../../../embassy-time", features = [ "tick-hz-32_768"] }
11embassy-stm32 = { version = "0.1.0", path = "../../../../embassy-stm32", features = ["stm32f767zi", "time-driver-any", "exti"] } 11embassy-stm32 = { version = "0.1.0", path = "../../../../embassy-stm32", features = ["stm32f767zi", "time-driver-any", "exti"] }
12embassy-boot-stm32 = { version = "0.1.0", path = "../../../../embassy-boot-stm32", features = [] } 12embassy-boot-stm32 = { version = "0.1.0", path = "../../../../embassy-boot-stm32", features = [] }
13embassy-embedded-hal = { version = "0.1.0", path = "../../../../embassy-embedded-hal" } 13embassy-embedded-hal = { version = "0.1.0", path = "../../../../embassy-embedded-hal" }
diff --git a/examples/boot/application/stm32h7/Cargo.toml b/examples/boot/application/stm32h7/Cargo.toml
index 12c34565a..4af9357e8 100644
--- a/examples/boot/application/stm32h7/Cargo.toml
+++ b/examples/boot/application/stm32h7/Cargo.toml
@@ -6,8 +6,8 @@ license = "MIT OR Apache-2.0"
6 6
7[dependencies] 7[dependencies]
8embassy-sync = { version = "0.5.0", path = "../../../../embassy-sync" } 8embassy-sync = { version = "0.5.0", path = "../../../../embassy-sync" }
9embassy-executor = { version = "0.4.0", path = "../../../../embassy-executor", features = ["task-arena-size-8192", "arch-cortex-m", "executor-thread", "integrated-timers"] } 9embassy-executor = { version = "0.5.0", path = "../../../../embassy-executor", features = ["task-arena-size-8192", "arch-cortex-m", "executor-thread", "integrated-timers"] }
10embassy-time = { version = "0.2", path = "../../../../embassy-time", features = [ "tick-hz-32_768"] } 10embassy-time = { version = "0.3.0", path = "../../../../embassy-time", features = [ "tick-hz-32_768"] }
11embassy-stm32 = { version = "0.1.0", path = "../../../../embassy-stm32", features = ["stm32h743zi", "time-driver-any", "exti"] } 11embassy-stm32 = { version = "0.1.0", path = "../../../../embassy-stm32", features = ["stm32h743zi", "time-driver-any", "exti"] }
12embassy-boot-stm32 = { version = "0.1.0", path = "../../../../embassy-boot-stm32", features = [] } 12embassy-boot-stm32 = { version = "0.1.0", path = "../../../../embassy-boot-stm32", features = [] }
13embassy-embedded-hal = { version = "0.1.0", path = "../../../../embassy-embedded-hal" } 13embassy-embedded-hal = { version = "0.1.0", path = "../../../../embassy-embedded-hal" }
diff --git a/examples/boot/application/stm32l0/Cargo.toml b/examples/boot/application/stm32l0/Cargo.toml
index 9f705dc26..20e6a71e8 100644
--- a/examples/boot/application/stm32l0/Cargo.toml
+++ b/examples/boot/application/stm32l0/Cargo.toml
@@ -6,8 +6,8 @@ license = "MIT OR Apache-2.0"
6 6
7[dependencies] 7[dependencies]
8embassy-sync = { version = "0.5.0", path = "../../../../embassy-sync" } 8embassy-sync = { version = "0.5.0", path = "../../../../embassy-sync" }
9embassy-executor = { version = "0.4.0", path = "../../../../embassy-executor", features = ["task-arena-size-8192", "arch-cortex-m", "executor-thread", "integrated-timers"] } 9embassy-executor = { version = "0.5.0", path = "../../../../embassy-executor", features = ["task-arena-size-8192", "arch-cortex-m", "executor-thread", "integrated-timers"] }
10embassy-time = { version = "0.2", path = "../../../../embassy-time", features = [ "tick-hz-32_768"] } 10embassy-time = { version = "0.3.0", path = "../../../../embassy-time", features = [ "tick-hz-32_768"] }
11embassy-stm32 = { version = "0.1.0", path = "../../../../embassy-stm32", features = ["stm32l072cz", "time-driver-any", "exti", "memory-x"] } 11embassy-stm32 = { version = "0.1.0", path = "../../../../embassy-stm32", features = ["stm32l072cz", "time-driver-any", "exti", "memory-x"] }
12embassy-boot-stm32 = { version = "0.1.0", path = "../../../../embassy-boot-stm32", features = [] } 12embassy-boot-stm32 = { version = "0.1.0", path = "../../../../embassy-boot-stm32", features = [] }
13embassy-embedded-hal = { version = "0.1.0", path = "../../../../embassy-embedded-hal" } 13embassy-embedded-hal = { version = "0.1.0", path = "../../../../embassy-embedded-hal" }
diff --git a/examples/boot/application/stm32l1/Cargo.toml b/examples/boot/application/stm32l1/Cargo.toml
index 7ba5f143b..b4b33fa4a 100644
--- a/examples/boot/application/stm32l1/Cargo.toml
+++ b/examples/boot/application/stm32l1/Cargo.toml
@@ -6,8 +6,8 @@ license = "MIT OR Apache-2.0"
6 6
7[dependencies] 7[dependencies]
8embassy-sync = { version = "0.5.0", path = "../../../../embassy-sync" } 8embassy-sync = { version = "0.5.0", path = "../../../../embassy-sync" }
9embassy-executor = { version = "0.4.0", path = "../../../../embassy-executor", features = ["task-arena-size-8192", "arch-cortex-m", "executor-thread", "integrated-timers"] } 9embassy-executor = { version = "0.5.0", path = "../../../../embassy-executor", features = ["task-arena-size-8192", "arch-cortex-m", "executor-thread", "integrated-timers"] }
10embassy-time = { version = "0.2", path = "../../../../embassy-time", features = [ "tick-hz-32_768"] } 10embassy-time = { version = "0.3.0", path = "../../../../embassy-time", features = [ "tick-hz-32_768"] }
11embassy-stm32 = { version = "0.1.0", path = "../../../../embassy-stm32", features = ["stm32l151cb-a", "time-driver-any", "exti"] } 11embassy-stm32 = { version = "0.1.0", path = "../../../../embassy-stm32", features = ["stm32l151cb-a", "time-driver-any", "exti"] }
12embassy-boot-stm32 = { version = "0.1.0", path = "../../../../embassy-boot-stm32", features = [] } 12embassy-boot-stm32 = { version = "0.1.0", path = "../../../../embassy-boot-stm32", features = [] }
13embassy-embedded-hal = { version = "0.1.0", path = "../../../../embassy-embedded-hal" } 13embassy-embedded-hal = { version = "0.1.0", path = "../../../../embassy-embedded-hal" }
diff --git a/examples/boot/application/stm32l4/Cargo.toml b/examples/boot/application/stm32l4/Cargo.toml
index 08cb87e0b..92cdeb450 100644
--- a/examples/boot/application/stm32l4/Cargo.toml
+++ b/examples/boot/application/stm32l4/Cargo.toml
@@ -6,8 +6,8 @@ license = "MIT OR Apache-2.0"
6 6
7[dependencies] 7[dependencies]
8embassy-sync = { version = "0.5.0", path = "../../../../embassy-sync" } 8embassy-sync = { version = "0.5.0", path = "../../../../embassy-sync" }
9embassy-executor = { version = "0.4.0", path = "../../../../embassy-executor", features = ["task-arena-size-8192", "arch-cortex-m", "executor-thread", "integrated-timers"] } 9embassy-executor = { version = "0.5.0", path = "../../../../embassy-executor", features = ["task-arena-size-8192", "arch-cortex-m", "executor-thread", "integrated-timers"] }
10embassy-time = { version = "0.2", path = "../../../../embassy-time", features = [ "tick-hz-32_768"] } 10embassy-time = { version = "0.3.0", path = "../../../../embassy-time", features = [ "tick-hz-32_768"] }
11embassy-stm32 = { version = "0.1.0", path = "../../../../embassy-stm32", features = ["stm32l475vg", "time-driver-any", "exti"] } 11embassy-stm32 = { version = "0.1.0", path = "../../../../embassy-stm32", features = ["stm32l475vg", "time-driver-any", "exti"] }
12embassy-boot-stm32 = { version = "0.1.0", path = "../../../../embassy-boot-stm32", features = [] } 12embassy-boot-stm32 = { version = "0.1.0", path = "../../../../embassy-boot-stm32", features = [] }
13embassy-embedded-hal = { version = "0.1.0", path = "../../../../embassy-embedded-hal" } 13embassy-embedded-hal = { version = "0.1.0", path = "../../../../embassy-embedded-hal" }
diff --git a/examples/boot/application/stm32wb-dfu/Cargo.toml b/examples/boot/application/stm32wb-dfu/Cargo.toml
index 58bba66d7..80fd08bb6 100644
--- a/examples/boot/application/stm32wb-dfu/Cargo.toml
+++ b/examples/boot/application/stm32wb-dfu/Cargo.toml
@@ -6,8 +6,8 @@ license = "MIT OR Apache-2.0"
6 6
7[dependencies] 7[dependencies]
8embassy-sync = { version = "0.5.0", path = "../../../../embassy-sync" } 8embassy-sync = { version = "0.5.0", path = "../../../../embassy-sync" }
9embassy-executor = { version = "0.4.0", path = "../../../../embassy-executor", features = ["task-arena-size-8192", "arch-cortex-m", "executor-thread", "integrated-timers"] } 9embassy-executor = { version = "0.5.0", path = "../../../../embassy-executor", features = ["task-arena-size-8192", "arch-cortex-m", "executor-thread", "integrated-timers"] }
10embassy-time = { version = "0.2", path = "../../../../embassy-time", features = [ "tick-hz-32_768"] } 10embassy-time = { version = "0.3.0", path = "../../../../embassy-time", features = [ "tick-hz-32_768"] }
11embassy-stm32 = { version = "0.1.0", path = "../../../../embassy-stm32", features = ["stm32wb55rg", "time-driver-any", "exti"] } 11embassy-stm32 = { version = "0.1.0", path = "../../../../embassy-stm32", features = ["stm32wb55rg", "time-driver-any", "exti"] }
12embassy-boot-stm32 = { version = "0.1.0", path = "../../../../embassy-boot-stm32", features = [] } 12embassy-boot-stm32 = { version = "0.1.0", path = "../../../../embassy-boot-stm32", features = [] }
13embassy-embedded-hal = { version = "0.1.0", path = "../../../../embassy-embedded-hal" } 13embassy-embedded-hal = { version = "0.1.0", path = "../../../../embassy-embedded-hal" }
diff --git a/examples/boot/application/stm32wl/Cargo.toml b/examples/boot/application/stm32wl/Cargo.toml
index 7ce560de2..b2a744d0d 100644
--- a/examples/boot/application/stm32wl/Cargo.toml
+++ b/examples/boot/application/stm32wl/Cargo.toml
@@ -6,8 +6,8 @@ license = "MIT OR Apache-2.0"
6 6
7[dependencies] 7[dependencies]
8embassy-sync = { version = "0.5.0", path = "../../../../embassy-sync" } 8embassy-sync = { version = "0.5.0", path = "../../../../embassy-sync" }
9embassy-executor = { version = "0.4.0", path = "../../../../embassy-executor", features = ["task-arena-size-8192", "arch-cortex-m", "executor-thread", "integrated-timers"] } 9embassy-executor = { version = "0.5.0", path = "../../../../embassy-executor", features = ["task-arena-size-8192", "arch-cortex-m", "executor-thread", "integrated-timers"] }
10embassy-time = { version = "0.2", path = "../../../../embassy-time", features = [ "tick-hz-32_768"] } 10embassy-time = { version = "0.3.0", path = "../../../../embassy-time", features = [ "tick-hz-32_768"] }
11embassy-stm32 = { version = "0.1.0", path = "../../../../embassy-stm32", features = ["stm32wl55jc-cm4", "time-driver-any", "exti"] } 11embassy-stm32 = { version = "0.1.0", path = "../../../../embassy-stm32", features = ["stm32wl55jc-cm4", "time-driver-any", "exti"] }
12embassy-boot-stm32 = { version = "0.1.0", path = "../../../../embassy-boot-stm32", features = [] } 12embassy-boot-stm32 = { version = "0.1.0", path = "../../../../embassy-boot-stm32", features = [] }
13embassy-embedded-hal = { version = "0.1.0", path = "../../../../embassy-embedded-hal" } 13embassy-embedded-hal = { version = "0.1.0", path = "../../../../embassy-embedded-hal" }
diff --git a/examples/nrf-rtos-trace/Cargo.toml b/examples/nrf-rtos-trace/Cargo.toml
index bfbec028a..17210994b 100644
--- a/examples/nrf-rtos-trace/Cargo.toml
+++ b/examples/nrf-rtos-trace/Cargo.toml
@@ -16,8 +16,8 @@ log = [
16 16
17[dependencies] 17[dependencies]
18embassy-sync = { version = "0.5.0", path = "../../embassy-sync" } 18embassy-sync = { version = "0.5.0", path = "../../embassy-sync" }
19embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "rtos-trace", "integrated-timers"] } 19embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "rtos-trace", "integrated-timers"] }
20embassy-time = { version = "0.2", path = "../../embassy-time" } 20embassy-time = { version = "0.3.0", path = "../../embassy-time" }
21embassy-nrf = { version = "0.1.0", path = "../../embassy-nrf", features = ["nrf52840", "time-driver-rtc1", "gpiote", "unstable-pac"] } 21embassy-nrf = { version = "0.1.0", path = "../../embassy-nrf", features = ["nrf52840", "time-driver-rtc1", "gpiote", "unstable-pac"] }
22 22
23cortex-m = { version = "0.7.6", features = ["inline-asm", "critical-section-single-core"] } 23cortex-m = { version = "0.7.6", features = ["inline-asm", "critical-section-single-core"] }
diff --git a/examples/nrf52840-rtic/Cargo.toml b/examples/nrf52840-rtic/Cargo.toml
index f5d49f0a1..d91f58d0e 100644
--- a/examples/nrf52840-rtic/Cargo.toml
+++ b/examples/nrf52840-rtic/Cargo.toml
@@ -9,7 +9,7 @@ rtic = { version = "2", features = ["thumbv7-backend"] }
9 9
10embassy-futures = { version = "0.1.0", path = "../../embassy-futures" } 10embassy-futures = { version = "0.1.0", path = "../../embassy-futures" }
11embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] } 11embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] }
12embassy-time = { version = "0.2", path = "../../embassy-time", features = [ "defmt", "defmt-timestamp-uptime", "generic-queue"] } 12embassy-time = { version = "0.3.0", path = "../../embassy-time", features = [ "defmt", "defmt-timestamp-uptime", "generic-queue"] }
13embassy-nrf = { version = "0.1.0", path = "../../embassy-nrf", features = [ "defmt", "nrf52840", "time-driver-rtc1", "gpiote", "unstable-pac", "time"] } 13embassy-nrf = { version = "0.1.0", path = "../../embassy-nrf", features = [ "defmt", "nrf52840", "time-driver-rtc1", "gpiote", "unstable-pac", "time"] }
14 14
15defmt = "0.3" 15defmt = "0.3"
diff --git a/examples/nrf52840/Cargo.toml b/examples/nrf52840/Cargo.toml
index 933e8d59e..abb995be6 100644
--- a/examples/nrf52840/Cargo.toml
+++ b/examples/nrf52840/Cargo.toml
@@ -7,10 +7,10 @@ license = "MIT OR Apache-2.0"
7[dependencies] 7[dependencies]
8embassy-futures = { version = "0.1.0", path = "../../embassy-futures" } 8embassy-futures = { version = "0.1.0", path = "../../embassy-futures" }
9embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] } 9embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] }
10embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "executor-interrupt", "defmt", "integrated-timers"] } 10embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "executor-interrupt", "defmt", "integrated-timers"] }
11embassy-time = { version = "0.2", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime"] } 11embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime"] }
12embassy-nrf = { version = "0.1.0", path = "../../embassy-nrf", features = ["defmt", "nrf52840", "time-driver-rtc1", "gpiote", "unstable-pac", "time"] } 12embassy-nrf = { version = "0.1.0", path = "../../embassy-nrf", features = ["defmt", "nrf52840", "time-driver-rtc1", "gpiote", "unstable-pac", "time"] }
13embassy-net = { version = "0.3", path = "../../embassy-net", features = ["defmt", "tcp", "dhcpv4", "medium-ethernet"] } 13embassy-net = { version = "0.4.0", path = "../../embassy-net", features = ["defmt", "tcp", "dhcpv4", "medium-ethernet"] }
14embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] } 14embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] }
15embedded-io = { version = "0.6.0", features = ["defmt-03"] } 15embedded-io = { version = "0.6.0", features = ["defmt-03"] }
16embedded-io-async = { version = "0.6.1", features = ["defmt-03"] } 16embedded-io-async = { version = "0.6.1", features = ["defmt-03"] }
diff --git a/examples/nrf5340/Cargo.toml b/examples/nrf5340/Cargo.toml
index fc225eee6..56b9c8018 100644
--- a/examples/nrf5340/Cargo.toml
+++ b/examples/nrf5340/Cargo.toml
@@ -7,10 +7,10 @@ license = "MIT OR Apache-2.0"
7[dependencies] 7[dependencies]
8embassy-futures = { version = "0.1.0", path = "../../embassy-futures" } 8embassy-futures = { version = "0.1.0", path = "../../embassy-futures" }
9embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] } 9embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] }
10embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] } 10embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] }
11embassy-time = { version = "0.2", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime"] } 11embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime"] }
12embassy-nrf = { version = "0.1.0", path = "../../embassy-nrf", features = ["defmt", "nrf5340-app-s", "time-driver-rtc1", "gpiote", "unstable-pac"] } 12embassy-nrf = { version = "0.1.0", path = "../../embassy-nrf", features = ["defmt", "nrf5340-app-s", "time-driver-rtc1", "gpiote", "unstable-pac"] }
13embassy-net = { version = "0.3", path = "../../embassy-net", features = ["defmt", "tcp", "dhcpv4", "medium-ethernet"] } 13embassy-net = { version = "0.4.0", path = "../../embassy-net", features = ["defmt", "tcp", "dhcpv4", "medium-ethernet"] }
14embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] } 14embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] }
15embedded-io-async = { version = "0.6.1" } 15embedded-io-async = { version = "0.6.1" }
16 16
diff --git a/examples/nrf9160/Cargo.toml b/examples/nrf9160/Cargo.toml
index 107b294d5..af2385960 100644
--- a/examples/nrf9160/Cargo.toml
+++ b/examples/nrf9160/Cargo.toml
@@ -5,8 +5,8 @@ version = "0.1.0"
5license = "MIT OR Apache-2.0" 5license = "MIT OR Apache-2.0"
6 6
7[dependencies] 7[dependencies]
8embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "executor-interrupt", "defmt", "integrated-timers"] } 8embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "executor-interrupt", "defmt", "integrated-timers"] }
9embassy-time = { version = "0.2", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime"] } 9embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime"] }
10embassy-nrf = { version = "0.1.0", path = "../../embassy-nrf", features = ["defmt", "nrf9160-s", "time-driver-rtc1", "gpiote", "unstable-pac", "time"] } 10embassy-nrf = { version = "0.1.0", path = "../../embassy-nrf", features = ["defmt", "nrf9160-s", "time-driver-rtc1", "gpiote", "unstable-pac", "time"] }
11 11
12defmt = "0.3" 12defmt = "0.3"
diff --git a/examples/rp/Cargo.toml b/examples/rp/Cargo.toml
index 07f2ae1c7..a3714289f 100644
--- a/examples/rp/Cargo.toml
+++ b/examples/rp/Cargo.toml
@@ -8,11 +8,11 @@ license = "MIT OR Apache-2.0"
8[dependencies] 8[dependencies]
9embassy-embedded-hal = { version = "0.1.0", path = "../../embassy-embedded-hal", features = ["defmt"] } 9embassy-embedded-hal = { version = "0.1.0", path = "../../embassy-embedded-hal", features = ["defmt"] }
10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] } 10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] }
11embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "executor-interrupt", "defmt", "integrated-timers"] } 11embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "executor-interrupt", "defmt", "integrated-timers"] }
12embassy-time = { version = "0.2", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime"] } 12embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime"] }
13embassy-rp = { version = "0.1.0", path = "../../embassy-rp", features = ["defmt", "unstable-pac", "time-driver", "critical-section-impl"] } 13embassy-rp = { version = "0.1.0", path = "../../embassy-rp", features = ["defmt", "unstable-pac", "time-driver", "critical-section-impl"] }
14embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] } 14embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] }
15embassy-net = { version = "0.3", path = "../../embassy-net", features = ["defmt", "tcp", "udp", "dhcpv4", "medium-ethernet"] } 15embassy-net = { version = "0.4.0", path = "../../embassy-net", features = ["defmt", "tcp", "udp", "dhcpv4", "medium-ethernet"] }
16embassy-net-wiznet = { version = "0.1.0", path = "../../embassy-net-wiznet", features = ["defmt"] } 16embassy-net-wiznet = { version = "0.1.0", path = "../../embassy-net-wiznet", features = ["defmt"] }
17embassy-futures = { version = "0.1.0", path = "../../embassy-futures" } 17embassy-futures = { version = "0.1.0", path = "../../embassy-futures" }
18embassy-usb-logger = { version = "0.1.0", path = "../../embassy-usb-logger" } 18embassy-usb-logger = { version = "0.1.0", path = "../../embassy-usb-logger" }
diff --git a/examples/std/Cargo.toml b/examples/std/Cargo.toml
index 969c3d36a..f05565e84 100644
--- a/examples/std/Cargo.toml
+++ b/examples/std/Cargo.toml
@@ -6,9 +6,9 @@ license = "MIT OR Apache-2.0"
6 6
7[dependencies] 7[dependencies]
8embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["log"] } 8embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["log"] }
9embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-std", "executor-thread", "log", "integrated-timers"] } 9embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-std", "executor-thread", "log", "integrated-timers"] }
10embassy-time = { version = "0.2", path = "../../embassy-time", features = ["log", "std", ] } 10embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["log", "std", ] }
11embassy-net = { version = "0.3", path = "../../embassy-net", features=[ "std", "log", "medium-ethernet", "medium-ip", "tcp", "udp", "dns", "dhcpv4", "proto-ipv6"] } 11embassy-net = { version = "0.4.0", path = "../../embassy-net", features=[ "std", "log", "medium-ethernet", "medium-ip", "tcp", "udp", "dns", "dhcpv4", "proto-ipv6"] }
12embassy-net-tuntap = { version = "0.1.0", path = "../../embassy-net-tuntap" } 12embassy-net-tuntap = { version = "0.1.0", path = "../../embassy-net-tuntap" }
13embassy-net-ppp = { version = "0.1.0", path = "../../embassy-net-ppp", features = ["log"]} 13embassy-net-ppp = { version = "0.1.0", path = "../../embassy-net-ppp", features = ["log"]}
14embedded-io-async = { version = "0.6.1" } 14embedded-io-async = { version = "0.6.1" }
diff --git a/examples/std/src/bin/serial.rs b/examples/std/src/bin/serial.rs
index 435089aad..10c85511d 100644
--- a/examples/std/src/bin/serial.rs
+++ b/examples/std/src/bin/serial.rs
@@ -3,6 +3,7 @@ mod serial_port;
3 3
4use async_io::Async; 4use async_io::Async;
5use embassy_executor::Executor; 5use embassy_executor::Executor;
6use embassy_time as _;
6use embedded_io_async::Read; 7use embedded_io_async::Read;
7use log::*; 8use log::*;
8use nix::sys::termios; 9use nix::sys::termios;
diff --git a/examples/stm32c0/Cargo.toml b/examples/stm32c0/Cargo.toml
index 0fd3939c6..7a3e03b75 100644
--- a/examples/stm32c0/Cargo.toml
+++ b/examples/stm32c0/Cargo.toml
@@ -8,8 +8,8 @@ license = "MIT OR Apache-2.0"
8# Change stm32c031c6 to your chip name, if necessary. 8# Change stm32c031c6 to your chip name, if necessary.
9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [ "defmt", "time-driver-any", "stm32c031c6", "memory-x", "unstable-pac", "exti"] } 9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [ "defmt", "time-driver-any", "stm32c031c6", "memory-x", "unstable-pac", "exti"] }
10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] } 10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] }
11embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] } 11embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] }
12embassy-time = { version = "0.2", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] } 12embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] }
13 13
14defmt = "0.3" 14defmt = "0.3"
15defmt-rtt = "0.4" 15defmt-rtt = "0.4"
diff --git a/examples/stm32f0/Cargo.toml b/examples/stm32f0/Cargo.toml
index 9fdc4798a..71b0eb683 100644
--- a/examples/stm32f0/Cargo.toml
+++ b/examples/stm32f0/Cargo.toml
@@ -15,8 +15,8 @@ defmt = "0.3"
15defmt-rtt = "0.4" 15defmt-rtt = "0.4"
16panic-probe = "0.3" 16panic-probe = "0.3"
17embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] } 17embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] }
18embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "executor-interrupt", "defmt", "integrated-timers"] } 18embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "executor-interrupt", "defmt", "integrated-timers"] }
19embassy-time = { version = "0.2", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] } 19embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] }
20static_cell = "2" 20static_cell = "2"
21portable-atomic = { version = "1.5", features = ["unsafe-assume-single-core"] } 21portable-atomic = { version = "1.5", features = ["unsafe-assume-single-core"] }
22 22
diff --git a/examples/stm32f1/Cargo.toml b/examples/stm32f1/Cargo.toml
index c933a4368..df5d32f70 100644
--- a/examples/stm32f1/Cargo.toml
+++ b/examples/stm32f1/Cargo.toml
@@ -8,8 +8,8 @@ license = "MIT OR Apache-2.0"
8# Change stm32f103c8 to your chip name, if necessary. 8# Change stm32f103c8 to your chip name, if necessary.
9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [ "defmt", "stm32f103c8", "unstable-pac", "memory-x", "time-driver-any" ] } 9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [ "defmt", "stm32f103c8", "unstable-pac", "memory-x", "time-driver-any" ] }
10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] } 10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] }
11embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] } 11embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] }
12embassy-time = { version = "0.2", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] } 12embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] }
13embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] } 13embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] }
14embassy-futures = { version = "0.1.0", path = "../../embassy-futures" } 14embassy-futures = { version = "0.1.0", path = "../../embassy-futures" }
15 15
diff --git a/examples/stm32f2/Cargo.toml b/examples/stm32f2/Cargo.toml
index eaaadeec5..4cbf1dc84 100644
--- a/examples/stm32f2/Cargo.toml
+++ b/examples/stm32f2/Cargo.toml
@@ -8,8 +8,8 @@ license = "MIT OR Apache-2.0"
8# Change stm32f207zg to your chip name, if necessary. 8# Change stm32f207zg to your chip name, if necessary.
9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [ "defmt", "stm32f207zg", "unstable-pac", "memory-x", "time-driver-any", "exti"] } 9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [ "defmt", "stm32f207zg", "unstable-pac", "memory-x", "time-driver-any", "exti"] }
10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] } 10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] }
11embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] } 11embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] }
12embassy-time = { version = "0.2", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] } 12embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] }
13 13
14defmt = "0.3" 14defmt = "0.3"
15defmt-rtt = "0.4" 15defmt-rtt = "0.4"
diff --git a/examples/stm32f3/Cargo.toml b/examples/stm32f3/Cargo.toml
index d5ab0b25a..64bb2e560 100644
--- a/examples/stm32f3/Cargo.toml
+++ b/examples/stm32f3/Cargo.toml
@@ -8,8 +8,8 @@ license = "MIT OR Apache-2.0"
8# Change stm32f303ze to your chip name, if necessary. 8# Change stm32f303ze to your chip name, if necessary.
9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [ "defmt", "stm32f303ze", "unstable-pac", "memory-x", "time-driver-any", "exti"] } 9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [ "defmt", "stm32f303ze", "unstable-pac", "memory-x", "time-driver-any", "exti"] }
10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] } 10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] }
11embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "executor-interrupt", "defmt", "integrated-timers"] } 11embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "executor-interrupt", "defmt", "integrated-timers"] }
12embassy-time = { version = "0.2", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] } 12embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] }
13embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] } 13embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] }
14embassy-futures = { version = "0.1.0", path = "../../embassy-futures" } 14embassy-futures = { version = "0.1.0", path = "../../embassy-futures" }
15 15
diff --git a/examples/stm32f334/Cargo.toml b/examples/stm32f334/Cargo.toml
index b29a08e7c..3e5a7cc8c 100644
--- a/examples/stm32f334/Cargo.toml
+++ b/examples/stm32f334/Cargo.toml
@@ -6,8 +6,8 @@ license = "MIT OR Apache-2.0"
6 6
7[dependencies] 7[dependencies]
8embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] } 8embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] }
9embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "executor-interrupt", "defmt", "integrated-timers"] } 9embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "executor-interrupt", "defmt", "integrated-timers"] }
10embassy-time = { version = "0.2.0", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] } 10embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] }
11embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [ "defmt", "stm32f334r8", "unstable-pac", "memory-x", "time-driver-any", "exti"] } 11embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [ "defmt", "stm32f334r8", "unstable-pac", "memory-x", "time-driver-any", "exti"] }
12embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] } 12embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] }
13embassy-futures = { version = "0.1.0", path = "../../embassy-futures" } 13embassy-futures = { version = "0.1.0", path = "../../embassy-futures" }
diff --git a/examples/stm32f4/Cargo.toml b/examples/stm32f4/Cargo.toml
index 838bb5291..cd46fc85b 100644
--- a/examples/stm32f4/Cargo.toml
+++ b/examples/stm32f4/Cargo.toml
@@ -8,10 +8,10 @@ license = "MIT OR Apache-2.0"
8# Change stm32f429zi to your chip name, if necessary. 8# Change stm32f429zi to your chip name, if necessary.
9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = ["defmt", "stm32f429zi", "unstable-pac", "memory-x", "time-driver-any", "exti", "chrono"] } 9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = ["defmt", "stm32f429zi", "unstable-pac", "memory-x", "time-driver-any", "exti", "chrono"] }
10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] } 10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] }
11embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "executor-interrupt", "defmt", "integrated-timers"] } 11embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "executor-interrupt", "defmt", "integrated-timers"] }
12embassy-time = { version = "0.2", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] } 12embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] }
13embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt" ] } 13embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt" ] }
14embassy-net = { version = "0.3", path = "../../embassy-net", features = ["defmt", "tcp", "dhcpv4", "medium-ethernet", ] } 14embassy-net = { version = "0.4.0", path = "../../embassy-net", features = ["defmt", "tcp", "dhcpv4", "medium-ethernet", ] }
15 15
16defmt = "0.3" 16defmt = "0.3"
17defmt-rtt = "0.4" 17defmt-rtt = "0.4"
diff --git a/examples/stm32f7/Cargo.toml b/examples/stm32f7/Cargo.toml
index 4b22069a0..941ba38cd 100644
--- a/examples/stm32f7/Cargo.toml
+++ b/examples/stm32f7/Cargo.toml
@@ -8,9 +8,9 @@ license = "MIT OR Apache-2.0"
8# Change stm32f767zi to your chip name, if necessary. 8# Change stm32f767zi to your chip name, if necessary.
9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = ["defmt", "stm32f767zi", "memory-x", "unstable-pac", "time-driver-any", "exti"] } 9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = ["defmt", "stm32f767zi", "memory-x", "unstable-pac", "time-driver-any", "exti"] }
10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] } 10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] }
11embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] } 11embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] }
12embassy-time = { version = "0.2", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] } 12embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] }
13embassy-net = { version = "0.3", path = "../../embassy-net", features = ["defmt", "tcp", "dhcpv4", "medium-ethernet"] } 13embassy-net = { version = "0.4.0", path = "../../embassy-net", features = ["defmt", "tcp", "dhcpv4", "medium-ethernet"] }
14embedded-io-async = { version = "0.6.1" } 14embedded-io-async = { version = "0.6.1" }
15embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] } 15embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] }
16 16
diff --git a/examples/stm32g0/Cargo.toml b/examples/stm32g0/Cargo.toml
index 7ad36952f..6ce3418e5 100644
--- a/examples/stm32g0/Cargo.toml
+++ b/examples/stm32g0/Cargo.toml
@@ -8,8 +8,8 @@ license = "MIT OR Apache-2.0"
8# Change stm32g0b1re to your chip name, if necessary. 8# Change stm32g0b1re to your chip name, if necessary.
9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [ "defmt", "time-driver-any", "stm32g0b1re", "memory-x", "unstable-pac", "exti"] } 9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [ "defmt", "time-driver-any", "stm32g0b1re", "memory-x", "unstable-pac", "exti"] }
10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] } 10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] }
11embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] } 11embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] }
12embassy-time = { version = "0.2", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] } 12embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] }
13embassy-usb = { version = "0.1.0", path = "../../embassy-usb", default-features = false, features = ["defmt"] } 13embassy-usb = { version = "0.1.0", path = "../../embassy-usb", default-features = false, features = ["defmt"] }
14embassy-futures = { version = "0.1.0", path = "../../embassy-futures" } 14embassy-futures = { version = "0.1.0", path = "../../embassy-futures" }
15 15
diff --git a/examples/stm32g4/Cargo.toml b/examples/stm32g4/Cargo.toml
index 987f23b3a..895ad3e7c 100644
--- a/examples/stm32g4/Cargo.toml
+++ b/examples/stm32g4/Cargo.toml
@@ -8,8 +8,8 @@ license = "MIT OR Apache-2.0"
8# Change stm32g491re to your chip name, if necessary. 8# Change stm32g491re to your chip name, if necessary.
9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [ "defmt", "time-driver-any", "stm32g491re", "memory-x", "unstable-pac", "exti"] } 9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [ "defmt", "time-driver-any", "stm32g491re", "memory-x", "unstable-pac", "exti"] }
10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] } 10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] }
11embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] } 11embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] }
12embassy-time = { version = "0.2", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] } 12embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] }
13embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] } 13embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] }
14embassy-futures = { version = "0.1.0", path = "../../embassy-futures" } 14embassy-futures = { version = "0.1.0", path = "../../embassy-futures" }
15usbd-hid = "0.6.0" 15usbd-hid = "0.6.0"
diff --git a/examples/stm32h5/Cargo.toml b/examples/stm32h5/Cargo.toml
index a636c0a33..c9f08d24e 100644
--- a/examples/stm32h5/Cargo.toml
+++ b/examples/stm32h5/Cargo.toml
@@ -8,9 +8,9 @@ license = "MIT OR Apache-2.0"
8# Change stm32h563zi to your chip name, if necessary. 8# Change stm32h563zi to your chip name, if necessary.
9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = ["defmt", "stm32h563zi", "memory-x", "time-driver-any", "exti", "unstable-pac"] } 9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = ["defmt", "stm32h563zi", "memory-x", "time-driver-any", "exti", "unstable-pac"] }
10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] } 10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] }
11embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] } 11embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] }
12embassy-time = { version = "0.2", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] } 12embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] }
13embassy-net = { version = "0.3", path = "../../embassy-net", features = ["defmt", "tcp", "dhcpv4", "medium-ethernet", "proto-ipv6"] } 13embassy-net = { version = "0.4.0", path = "../../embassy-net", features = ["defmt", "tcp", "dhcpv4", "medium-ethernet", "proto-ipv6"] }
14embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] } 14embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] }
15 15
16defmt = "0.3" 16defmt = "0.3"
diff --git a/examples/stm32h7/Cargo.toml b/examples/stm32h7/Cargo.toml
index 041408b9a..d9ea2626d 100644
--- a/examples/stm32h7/Cargo.toml
+++ b/examples/stm32h7/Cargo.toml
@@ -8,9 +8,9 @@ license = "MIT OR Apache-2.0"
8# Change stm32h743bi to your chip name, if necessary. 8# Change stm32h743bi to your chip name, if necessary.
9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = ["defmt", "stm32h743bi", "time-driver-any", "exti", "memory-x", "unstable-pac", "chrono"] } 9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = ["defmt", "stm32h743bi", "time-driver-any", "exti", "memory-x", "unstable-pac", "chrono"] }
10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] } 10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] }
11embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] } 11embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] }
12embassy-time = { version = "0.2", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] } 12embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] }
13embassy-net = { version = "0.3", path = "../../embassy-net", features = ["defmt", "tcp", "dhcpv4", "medium-ethernet", "proto-ipv6", "dns"] } 13embassy-net = { version = "0.4.0", path = "../../embassy-net", features = ["defmt", "tcp", "dhcpv4", "medium-ethernet", "proto-ipv6", "dns"] }
14embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] } 14embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] }
15 15
16defmt = "0.3" 16defmt = "0.3"
diff --git a/examples/stm32l0/Cargo.toml b/examples/stm32l0/Cargo.toml
index 739aa6cb1..dd9097c9b 100644
--- a/examples/stm32l0/Cargo.toml
+++ b/examples/stm32l0/Cargo.toml
@@ -8,8 +8,8 @@ license = "MIT OR Apache-2.0"
8# Change stm32l072cz to your chip name, if necessary. 8# Change stm32l072cz to your chip name, if necessary.
9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = ["defmt", "stm32l072cz", "time-driver-any", "exti", "memory-x"] } 9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = ["defmt", "stm32l072cz", "time-driver-any", "exti", "memory-x"] }
10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] } 10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] }
11embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] } 11embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] }
12embassy-time = { version = "0.2", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] } 12embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] }
13 13
14defmt = "0.3" 14defmt = "0.3"
15defmt-rtt = "0.4" 15defmt-rtt = "0.4"
diff --git a/examples/stm32l1/Cargo.toml b/examples/stm32l1/Cargo.toml
index 071d6a502..c0b35b716 100644
--- a/examples/stm32l1/Cargo.toml
+++ b/examples/stm32l1/Cargo.toml
@@ -6,8 +6,8 @@ license = "MIT OR Apache-2.0"
6 6
7[dependencies] 7[dependencies]
8embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] } 8embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] }
9embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] } 9embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] }
10embassy-time = { version = "0.2", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] } 10embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] }
11embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [ "defmt", "stm32l151cb-a", "time-driver-any", "memory-x"] } 11embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [ "defmt", "stm32l151cb-a", "time-driver-any", "memory-x"] }
12 12
13defmt = "0.3" 13defmt = "0.3"
diff --git a/examples/stm32l4/Cargo.toml b/examples/stm32l4/Cargo.toml
index e434f3bd9..d42e69578 100644
--- a/examples/stm32l4/Cargo.toml
+++ b/examples/stm32l4/Cargo.toml
@@ -8,12 +8,12 @@ license = "MIT OR Apache-2.0"
8# Change stm32l4s5vi to your chip name, if necessary. 8# Change stm32l4s5vi to your chip name, if necessary.
9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [ "defmt", "unstable-pac", "stm32l4s5qi", "memory-x", "time-driver-any", "exti", "chrono"] } 9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [ "defmt", "unstable-pac", "stm32l4s5qi", "memory-x", "time-driver-any", "exti", "chrono"] }
10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] } 10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] }
11embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] } 11embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] }
12embassy-time = { version = "0.2", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768", ] } 12embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768", ] }
13embassy-embedded-hal = { version = "0.1.0", path = "../../embassy-embedded-hal" } 13embassy-embedded-hal = { version = "0.1.0", path = "../../embassy-embedded-hal" }
14embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] } 14embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] }
15embassy-net-adin1110 = { version = "0.2.0", path = "../../embassy-net-adin1110" } 15embassy-net-adin1110 = { version = "0.2.0", path = "../../embassy-net-adin1110" }
16embassy-net = { version = "0.3", path = "../../embassy-net", features = ["defmt", "udp", "tcp", "dhcpv4", "medium-ethernet"] } 16embassy-net = { version = "0.4.0", path = "../../embassy-net", features = ["defmt", "udp", "tcp", "dhcpv4", "medium-ethernet"] }
17embassy-futures = { version = "0.1.0", path = "../../embassy-futures" } 17embassy-futures = { version = "0.1.0", path = "../../embassy-futures" }
18embedded-io-async = { version = "0.6.1", features = ["defmt-03"] } 18embedded-io-async = { version = "0.6.1", features = ["defmt-03"] }
19embedded-io = { version = "0.6.0", features = ["defmt-03"] } 19embedded-io = { version = "0.6.0", features = ["defmt-03"] }
diff --git a/examples/stm32l5/Cargo.toml b/examples/stm32l5/Cargo.toml
index ce71cc310..0c6beb72c 100644
--- a/examples/stm32l5/Cargo.toml
+++ b/examples/stm32l5/Cargo.toml
@@ -8,10 +8,10 @@ license = "MIT OR Apache-2.0"
8# Change stm32l552ze to your chip name, if necessary. 8# Change stm32l552ze to your chip name, if necessary.
9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [ "defmt", "unstable-pac", "stm32l552ze", "time-driver-any", "exti", "memory-x", "low-power"] } 9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [ "defmt", "unstable-pac", "stm32l552ze", "time-driver-any", "exti", "memory-x", "low-power"] }
10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] } 10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] }
11embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] } 11embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] }
12embassy-time = { version = "0.2", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] } 12embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] }
13embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] } 13embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] }
14embassy-net = { version = "0.3", path = "../../embassy-net", features = ["defmt", "tcp", "dhcpv4", "medium-ethernet"] } 14embassy-net = { version = "0.4.0", path = "../../embassy-net", features = ["defmt", "tcp", "dhcpv4", "medium-ethernet"] }
15embassy-futures = { version = "0.1.0", path = "../../embassy-futures" } 15embassy-futures = { version = "0.1.0", path = "../../embassy-futures" }
16usbd-hid = "0.6.0" 16usbd-hid = "0.6.0"
17 17
diff --git a/examples/stm32u5/Cargo.toml b/examples/stm32u5/Cargo.toml
index 5a8a3eaac..03294339d 100644
--- a/examples/stm32u5/Cargo.toml
+++ b/examples/stm32u5/Cargo.toml
@@ -8,8 +8,8 @@ license = "MIT OR Apache-2.0"
8# Change stm32u585ai to your chip name, if necessary. 8# Change stm32u585ai to your chip name, if necessary.
9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = ["defmt", "unstable-pac", "stm32u585ai", "time-driver-any", "memory-x" ] } 9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = ["defmt", "unstable-pac", "stm32u585ai", "time-driver-any", "memory-x" ] }
10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] } 10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] }
11embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] } 11embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] }
12embassy-time = { version = "0.2", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] } 12embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] }
13embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] } 13embassy-usb = { version = "0.1.0", path = "../../embassy-usb", features = ["defmt"] }
14 14
15defmt = "0.3" 15defmt = "0.3"
diff --git a/examples/stm32wb/Cargo.toml b/examples/stm32wb/Cargo.toml
index 8dce89abf..94a5141f5 100644
--- a/examples/stm32wb/Cargo.toml
+++ b/examples/stm32wb/Cargo.toml
@@ -9,9 +9,9 @@ license = "MIT OR Apache-2.0"
9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [ "defmt", "stm32wb55rg", "time-driver-any", "memory-x", "exti"] } 9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [ "defmt", "stm32wb55rg", "time-driver-any", "memory-x", "exti"] }
10embassy-stm32-wpan = { version = "0.1.0", path = "../../embassy-stm32-wpan", features = ["defmt", "stm32wb55rg"] } 10embassy-stm32-wpan = { version = "0.1.0", path = "../../embassy-stm32-wpan", features = ["defmt", "stm32wb55rg"] }
11embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] } 11embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] }
12embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] } 12embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] }
13embassy-time = { version = "0.2", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] } 13embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] }
14embassy-net = { version = "0.3", path = "../../embassy-net", features = ["defmt", "udp", "proto-ipv6", "medium-ieee802154", ], optional=true } 14embassy-net = { version = "0.4.0", path = "../../embassy-net", features = ["defmt", "udp", "proto-ipv6", "medium-ieee802154", ], optional=true }
15 15
16defmt = "0.3" 16defmt = "0.3"
17defmt-rtt = "0.4" 17defmt-rtt = "0.4"
diff --git a/examples/stm32wba/Cargo.toml b/examples/stm32wba/Cargo.toml
index 48455b760..47279a012 100644
--- a/examples/stm32wba/Cargo.toml
+++ b/examples/stm32wba/Cargo.toml
@@ -7,9 +7,9 @@ license = "MIT OR Apache-2.0"
7[dependencies] 7[dependencies]
8embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [ "defmt", "stm32wba52cg", "time-driver-any", "memory-x", "exti"] } 8embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [ "defmt", "stm32wba52cg", "time-driver-any", "memory-x", "exti"] }
9embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] } 9embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] }
10embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] } 10embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] }
11embassy-time = { version = "0.2", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] } 11embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] }
12embassy-net = { version = "0.3", path = "../../embassy-net", features = ["defmt", "udp", "proto-ipv6", "medium-ieee802154", ], optional=true } 12embassy-net = { version = "0.4.0", path = "../../embassy-net", features = ["defmt", "udp", "proto-ipv6", "medium-ieee802154", ], optional=true }
13 13
14defmt = "0.3" 14defmt = "0.3"
15defmt-rtt = "0.4" 15defmt-rtt = "0.4"
diff --git a/examples/stm32wl/Cargo.toml b/examples/stm32wl/Cargo.toml
index 20ffe6099..4cb55930b 100644
--- a/examples/stm32wl/Cargo.toml
+++ b/examples/stm32wl/Cargo.toml
@@ -8,8 +8,8 @@ license = "MIT OR Apache-2.0"
8# Change stm32wl55jc-cm4 to your chip name, if necessary. 8# Change stm32wl55jc-cm4 to your chip name, if necessary.
9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = ["defmt", "stm32wl55jc-cm4", "time-driver-any", "memory-x", "unstable-pac", "exti", "chrono"] } 9embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = ["defmt", "stm32wl55jc-cm4", "time-driver-any", "memory-x", "unstable-pac", "exti", "chrono"] }
10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] } 10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] }
11embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["task-arena-size-4096", "arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] } 11embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["task-arena-size-4096", "arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] }
12embassy-time = { version = "0.2", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] } 12embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime", "tick-hz-32_768"] }
13embassy-embedded-hal = { version = "0.1.0", path = "../../embassy-embedded-hal" } 13embassy-embedded-hal = { version = "0.1.0", path = "../../embassy-embedded-hal" }
14 14
15defmt = "0.3" 15defmt = "0.3"
diff --git a/examples/wasm/Cargo.toml b/examples/wasm/Cargo.toml
index 305ebd526..3d2300b59 100644
--- a/examples/wasm/Cargo.toml
+++ b/examples/wasm/Cargo.toml
@@ -9,8 +9,8 @@ crate-type = ["cdylib"]
9 9
10[dependencies] 10[dependencies]
11embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["log"] } 11embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["log"] }
12embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["arch-wasm", "executor-thread", "log", "integrated-timers"] } 12embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["arch-wasm", "executor-thread", "log", "integrated-timers"] }
13embassy-time = { version = "0.2", path = "../../embassy-time", features = ["log", "wasm", ] } 13embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["log", "wasm", ] }
14 14
15wasm-logger = "0.2.0" 15wasm-logger = "0.2.0"
16wasm-bindgen = "0.2" 16wasm-bindgen = "0.2"
diff --git a/tests/nrf/Cargo.toml b/tests/nrf/Cargo.toml
index 8ef51fcdb..84ca99f1f 100644
--- a/tests/nrf/Cargo.toml
+++ b/tests/nrf/Cargo.toml
@@ -9,11 +9,11 @@ teleprobe-meta = "1"
9 9
10embassy-futures = { version = "0.1.0", path = "../../embassy-futures" } 10embassy-futures = { version = "0.1.0", path = "../../embassy-futures" }
11embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt", ] } 11embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt", ] }
12embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "defmt", "task-arena-size-16384", "integrated-timers"] } 12embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "defmt", "task-arena-size-16384", "integrated-timers"] }
13embassy-time = { version = "0.2", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime"] } 13embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["defmt", "defmt-timestamp-uptime"] }
14embassy-nrf = { version = "0.1.0", path = "../../embassy-nrf", features = ["defmt", "nrf52840", "time-driver-rtc1", "gpiote", "unstable-pac"] } 14embassy-nrf = { version = "0.1.0", path = "../../embassy-nrf", features = ["defmt", "nrf52840", "time-driver-rtc1", "gpiote", "unstable-pac"] }
15embedded-io-async = { version = "0.6.1", features = ["defmt-03"] } 15embedded-io-async = { version = "0.6.1", features = ["defmt-03"] }
16embassy-net = { version = "0.3", path = "../../embassy-net", features = ["defmt", "tcp", "dhcpv4", "medium-ethernet", ] } 16embassy-net = { version = "0.4.0", path = "../../embassy-net", features = ["defmt", "tcp", "dhcpv4", "medium-ethernet", ] }
17embassy-net-esp-hosted = { version = "0.1.0", path = "../../embassy-net-esp-hosted", features = ["defmt"] } 17embassy-net-esp-hosted = { version = "0.1.0", path = "../../embassy-net-esp-hosted", features = ["defmt"] }
18embassy-net-enc28j60 = { version = "0.1.0", path = "../../embassy-net-enc28j60", features = ["defmt"] } 18embassy-net-enc28j60 = { version = "0.1.0", path = "../../embassy-net-enc28j60", features = ["defmt"] }
19embedded-hal-async = { version = "1.0" } 19embedded-hal-async = { version = "1.0" }
diff --git a/tests/perf-client/Cargo.toml b/tests/perf-client/Cargo.toml
index 9eecd535c..4390a6da1 100644
--- a/tests/perf-client/Cargo.toml
+++ b/tests/perf-client/Cargo.toml
@@ -6,7 +6,7 @@ edition = "2021"
6# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 6# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
7 7
8[dependencies] 8[dependencies]
9embassy-net = { version = "0.3", path = "../../embassy-net", features = ["defmt", "tcp", "dhcpv4"] } 9embassy-net = { version = "0.4.0", path = "../../embassy-net", features = ["defmt", "tcp", "dhcpv4"] }
10embassy-time = { version = "0.2", path = "../../embassy-time", features = ["defmt", ] } 10embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["defmt", ] }
11embassy-futures = { version = "0.1.0", path = "../../embassy-futures" } 11embassy-futures = { version = "0.1.0", path = "../../embassy-futures" }
12defmt = "0.3.0" 12defmt = "0.3.0"
diff --git a/tests/riscv32/Cargo.toml b/tests/riscv32/Cargo.toml
index a7b389150..38fb2deec 100644
--- a/tests/riscv32/Cargo.toml
+++ b/tests/riscv32/Cargo.toml
@@ -7,8 +7,8 @@ license = "MIT OR Apache-2.0"
7[dependencies] 7[dependencies]
8critical-section = { version = "1.1.1", features = ["restore-state-bool"] } 8critical-section = { version = "1.1.1", features = ["restore-state-bool"] }
9embassy-sync = { version = "0.5.0", path = "../../embassy-sync" } 9embassy-sync = { version = "0.5.0", path = "../../embassy-sync" }
10embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["arch-riscv32", "executor-thread"] } 10embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["arch-riscv32", "executor-thread"] }
11embassy-time = { version = "0.2", path = "../../embassy-time" } 11embassy-time = { version = "0.3.0", path = "../../embassy-time" }
12embassy-futures = { version = "0.1.0", path = "../../embassy-futures" } 12embassy-futures = { version = "0.1.0", path = "../../embassy-futures" }
13 13
14riscv-rt = "0.11" 14riscv-rt = "0.11"
diff --git a/tests/rp/Cargo.toml b/tests/rp/Cargo.toml
index 6be50a2f2..46e1e9a5f 100644
--- a/tests/rp/Cargo.toml
+++ b/tests/rp/Cargo.toml
@@ -8,11 +8,11 @@ license = "MIT OR Apache-2.0"
8teleprobe-meta = "1.1" 8teleprobe-meta = "1.1"
9 9
10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] } 10embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] }
11embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] } 11embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] }
12embassy-time = { version = "0.2", path = "../../embassy-time", features = ["defmt", ] } 12embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["defmt", ] }
13embassy-rp = { version = "0.1.0", path = "../../embassy-rp", features = [ "defmt", "unstable-pac", "time-driver", "critical-section-impl", "intrinsics", "rom-v2-intrinsics", "run-from-ram"] } 13embassy-rp = { version = "0.1.0", path = "../../embassy-rp", features = [ "defmt", "unstable-pac", "time-driver", "critical-section-impl", "intrinsics", "rom-v2-intrinsics", "run-from-ram"] }
14embassy-futures = { version = "0.1.0", path = "../../embassy-futures" } 14embassy-futures = { version = "0.1.0", path = "../../embassy-futures" }
15embassy-net = { version = "0.3", path = "../../embassy-net", features = ["defmt", "tcp", "udp", "dhcpv4", "medium-ethernet"] } 15embassy-net = { version = "0.4.0", path = "../../embassy-net", features = ["defmt", "tcp", "udp", "dhcpv4", "medium-ethernet"] }
16embassy-net-wiznet = { version = "0.1.0", path = "../../embassy-net-wiznet", features = ["defmt"] } 16embassy-net-wiznet = { version = "0.1.0", path = "../../embassy-net-wiznet", features = ["defmt"] }
17cyw43 = { path = "../../cyw43", features = ["defmt", "firmware-logs"] } 17cyw43 = { path = "../../cyw43", features = ["defmt", "firmware-logs"] }
18cyw43-pio = { path = "../../cyw43-pio", features = ["defmt", "overclock"] } 18cyw43-pio = { path = "../../cyw43-pio", features = ["defmt", "overclock"] }
diff --git a/tests/stm32/Cargo.toml b/tests/stm32/Cargo.toml
index c4ce42922..bf85f05d2 100644
--- a/tests/stm32/Cargo.toml
+++ b/tests/stm32/Cargo.toml
@@ -49,12 +49,12 @@ cm0 = ["portable-atomic/unsafe-assume-single-core"]
49teleprobe-meta = "1" 49teleprobe-meta = "1"
50 50
51embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] } 51embassy-sync = { version = "0.5.0", path = "../../embassy-sync", features = ["defmt"] }
52embassy-executor = { version = "0.4.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] } 52embassy-executor = { version = "0.5.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "defmt", "integrated-timers"] }
53embassy-time = { version = "0.2", path = "../../embassy-time", features = ["defmt", "tick-hz-131_072", "defmt-timestamp-uptime"] } 53embassy-time = { version = "0.3.0", path = "../../embassy-time", features = ["defmt", "tick-hz-131_072", "defmt-timestamp-uptime"] }
54embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [ "defmt", "unstable-pac", "memory-x", "time-driver-any"] } 54embassy-stm32 = { version = "0.1.0", path = "../../embassy-stm32", features = [ "defmt", "unstable-pac", "memory-x", "time-driver-any"] }
55embassy-futures = { version = "0.1.0", path = "../../embassy-futures" } 55embassy-futures = { version = "0.1.0", path = "../../embassy-futures" }
56embassy-stm32-wpan = { version = "0.1.0", path = "../../embassy-stm32-wpan", optional = true, features = ["defmt", "stm32wb55rg", "ble"] } 56embassy-stm32-wpan = { version = "0.1.0", path = "../../embassy-stm32-wpan", optional = true, features = ["defmt", "stm32wb55rg", "ble"] }
57embassy-net = { version = "0.3", path = "../../embassy-net", features = ["defmt", "tcp", "udp", "dhcpv4", "medium-ethernet"] } 57embassy-net = { version = "0.4.0", path = "../../embassy-net", features = ["defmt", "tcp", "udp", "dhcpv4", "medium-ethernet"] }
58perf-client = { path = "../perf-client" } 58perf-client = { path = "../perf-client" }
59 59
60defmt = "0.3.0" 60defmt = "0.3.0"