On 19/04/2021 18:42, Gedare Bloom wrote:
On Mon, Apr 19, 2021 at 10:41 AM Gedare Bloom<ged...@rtems.org> wrote:
On Mon, Apr 19, 2021 at 2:51 AM Robin Müller<robin.muelle...@gmail.com> wrote:
From 88ac5780f5597a8bb3bf68c6b37fe6694956faaf Mon Sep 17 00:00:00 2001
From: Robin Mueller<robin.muelle...@gmail.com>
Date: Mon, 19 Apr 2021 10:39:55 +0200
Subject: [PATCH] updated HAL_GetTick function
Patch text went missing, here is the full version of the patch.
Provides implementation for HAL_GetTick but uses RTEMS.
Accounts for the tick base not being 1ms now
---
bsps/arm/stm32h7/start/bspstart.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/bsps/arm/stm32h7/start/bspstart.c
b/bsps/arm/stm32h7/start/bspstart.c
index 2fc8133cca..e6e995a50c 100644
--- a/bsps/arm/stm32h7/start/bspstart.c
+++ b/bsps/arm/stm32h7/start/bspstart.c
@@ -32,9 +32,10 @@
#include <stm32h7xx_hal.h>
+/* Get number of milliseconds elapsed since startup */
uint32_t HAL_GetTick(void)
{
- return 0;
+ return (rtems_clock_get_ticks_since_boot() * 1000) /
rtems_clock_get_ticks_per_second();
This is reasonable, but note that:
1. usually it is better to divide before multiplying, to reduce the
chance of arithmetic overflows.
2. the ticks_since_boot is 32-bits, with 1000 Hz ticking it overflows
in ~2 months
I suggest you consider
return rtems_clock_get_uptime_seconds()*1000;
Or you can use rtems_clock_get_uptime_nanoseconds() / (10000000) if ms
precision is needed.
I just saw that the HAL function also returns a u32, so it will
overflow anyway and it doesn't really matter what you do.
The HAL_GetTick() should still be correct, otherwise you have an
infrequent bug which may or may not trouble you seriously. Maybe just do
the computation with 64-bit floating point numbers or just
rtems_clock_get_uptime_nanoseconds() / 1000.
--
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.hu...@embedded-brains.de
phone: +49-89-18 94 741 - 16
fax: +49-89-18 94 741 - 08
Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel