From 01d8543bc71d003b6f3aad50d17ff4fd0fa7461a Mon Sep 17 00:00:00 2001 From: Ulf Lilleengen Date: Thu, 18 Dec 2025 17:31:16 +0100 Subject: fix: avoid hang if calling now() before syscounter is enabled If the time driver now() is called before the syscounter is enabled on nrf54, it would hang. The fix checks if syscounter is enabled, and returns 0 if not. --- embassy-nrf/src/time_driver.rs | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'embassy-nrf/src/time_driver.rs') diff --git a/embassy-nrf/src/time_driver.rs b/embassy-nrf/src/time_driver.rs index 35f65bd64..21d94cc30 100644 --- a/embassy-nrf/src/time_driver.rs +++ b/embassy-nrf/src/time_driver.rs @@ -79,6 +79,10 @@ fn calc_now(period: u32, counter: u32) -> u64 { #[cfg(feature = "_grtc")] fn syscounter() -> u64 { let r = rtc(); + if !r.mode().read().syscounteren() { + return 0; + } + r.syscounter(0).active().write(|w| w.set_active(true)); loop { let countl: u32 = r.syscounter(0).syscounterl().read(); -- cgit