From 775d157f80e6608f8bfc5286f5b21972c260d7a4 Mon Sep 17 00:00:00 2001 From: tracer-ics2023 Date: Sat, 14 Sep 2024 17:32:37 +0800 Subject: [PATCH] =?UTF-8?q?>=20=20compile=20NEMU=20221220000=20=E5=BC=A0?= =?UTF-8?q?=E4=B8=89=20Linux=20zzy=205.15.146.1-microsoft-standard-WSL2=20?= =?UTF-8?q?#1=20SMP=20Thu=20Jan=2011=2004:09:03=20UTC=202024=20x86=5F64=20?= =?UTF-8?q?x86=5F64=20x86=5F64=20GNU/Linux=20=2017:32:36=20up=202=20days,?= =?UTF-8?q?=20=207:46,=20=201=20user,=20=20load=20average:=200.38,=200.45,?= =?UTF-8?q?=200.39?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- abstract-machine/am/src/platform/nemu/ioe/timer.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/abstract-machine/am/src/platform/nemu/ioe/timer.c b/abstract-machine/am/src/platform/nemu/ioe/timer.c index a22c539..a566162 100644 --- a/abstract-machine/am/src/platform/nemu/ioe/timer.c +++ b/abstract-machine/am/src/platform/nemu/ioe/timer.c @@ -17,7 +17,10 @@ void __am_timer_init() { } void __am_timer_uptime(AM_TIMER_UPTIME_T *uptime) { - (*(volatile AM_TIMER_UPTIME_T *)uptime).us = GET_TIME() - __timer_start; + volatile uint32_t lower_timer = inl(RTC_ADDR); + volatile uint32_t high_timer = inl(RTC_ADDR + 4); + volatile uint64_t timer = lower_timer + (((uint64_t) high_timer) << 32); + (*(volatile AM_TIMER_UPTIME_T *)uptime).us = timer - __timer_start; PNT_BITS(uptime->us); }