From 1abbe7b9c97b0edaeaf7f80c514c1b6530b163ae Mon Sep 17 00:00:00 2001 From: Ulrich Mohr Date: Wed, 11 Feb 2026 12:06:21 +0100 Subject: [PATCH] division by zero check to avoid panic --- firmware/zynq7000-hal/CHANGELOG.md | 1 + firmware/zynq7000-hal/src/gtc.rs | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/firmware/zynq7000-hal/CHANGELOG.md b/firmware/zynq7000-hal/CHANGELOG.md index 287a726..dbb0cdb 100644 --- a/firmware/zynq7000-hal/CHANGELOG.md +++ b/firmware/zynq7000-hal/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ## Changed +- Added division by zero check in gtc frequency_to_ticks to avoid runtime panic - Increased UART type safety by providing dedicated MIO constructors for UART 0 and UART 1 respectively. - Several bugfixes and improvements for GIC module. Some of the registers previously were diff --git a/firmware/zynq7000-hal/src/gtc.rs b/firmware/zynq7000-hal/src/gtc.rs index f4626e7..0a4994a 100644 --- a/firmware/zynq7000-hal/src/gtc.rs +++ b/firmware/zynq7000-hal/src/gtc.rs @@ -18,7 +18,11 @@ unsafe impl Send for GlobalTimerCounter {} /// Convert a frequency to GTC ticks given a clock frequency. pub const fn frequency_to_ticks(clock: Hertz, frequency: Hertz) -> u32 { - clock.raw().div_ceil(frequency.raw()) + if frequency.raw() != 0 { + clock.raw().div_ceil(frequency.raw()) + } else { + 0 + } } impl GlobalTimerCounter { -- 2.43.0