diff --git a/drivers/timers/arch_timer.c b/drivers/timers/arch_timer.c index 5ee0da8c1de..5e3b0f988cd 100644 --- a/drivers/timers/arch_timer.c +++ b/drivers/timers/arch_timer.c @@ -309,11 +309,14 @@ int weak_function up_timer_gettick(FAR clock_t *ticks) int weak_function up_timer_gettime(struct timespec *ts) { int ret = -EAGAIN; + uint64_t usec; if (g_timer.lower != NULL) { - ts->tv_sec = current_usec() / USEC_PER_SEC; - ts->tv_nsec = (current_usec() % USEC_PER_SEC) * NSEC_PER_USEC; + usec = current_usec(); + + ts->tv_sec = usec / USEC_PER_SEC; + ts->tv_nsec = (usec % USEC_PER_SEC) * NSEC_PER_USEC; ret = OK; }