diff --git a/esp-hal-embassy/src/executor/thread.rs b/esp-hal-embassy/src/executor/thread.rs index 624de7e25..e89d00175 100644 --- a/esp-hal-embassy/src/executor/thread.rs +++ b/esp-hal-embassy/src/executor/thread.rs @@ -90,6 +90,9 @@ This will use software-interrupt 3 which isn't available for anything else to wa Priority::min(), )); + unsafe { + self.inner.initialize(); + } init(self.inner.spawner()); #[cfg(low_power_wait)] diff --git a/qa-test/Cargo.toml b/qa-test/Cargo.toml index 2a1ded08a..846697901 100644 --- a/qa-test/Cargo.toml +++ b/qa-test/Cargo.toml @@ -35,3 +35,8 @@ debug = 2 debug-assertions = true lto = "fat" codegen-units = 1 + +[patch.crates-io] +embassy-executor = { path = "C:/_Hobby/CardIo/embassy/embassy-executor" } +embassy-time = { path = "C:/_Hobby/CardIo/embassy/embassy-time" } +embassy-time-driver = { path = "C:/_Hobby/CardIo/embassy/embassy-time-driver" } diff --git a/qa-test/src/bin/embassy_executor_benchmark.rs b/qa-test/src/bin/embassy_executor_benchmark.rs index 77aa749e9..0bb18ffad 100644 --- a/qa-test/src/bin/embassy_executor_benchmark.rs +++ b/qa-test/src/bin/embassy_executor_benchmark.rs @@ -54,6 +54,13 @@ impl Future for Task1 { static TASK1: TaskStorage = TaskStorage::new(); +#[embassy_executor::task] +async fn task2() { + loop { + embassy_time::Timer::after(embassy_time::Duration::from_millis(1)).await; + } +} + #[esp_hal_embassy::main] async fn main(spawner: Spawner) { let config = esp_hal::Config::default().with_cpu_clock(CpuClock::max()); @@ -63,6 +70,7 @@ async fn main(spawner: Spawner) { println!("Embassy initialized!"); spawner.spawn(TASK1.spawn(|| Task1 {})).unwrap(); + spawner.spawn(task2()).unwrap(); println!("Starting test");