Files
NJU_PA/abstract-machine/am/src/platform/nemu/ioe/timer.c
tracer-ics2023 a3553f31e2 > compile NEMU
221220000 张三
Linux zzy 5.15.146.1-microsoft-standard-WSL2 #1 SMP Thu Jan 11 04:09:03 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
 11:29:06 up 2 days,  1:42,  1 user,  load average: 0.80, 0.49, 0.36
2024-09-14 11:29:06 +08:00

24 lines
516 B
C

#include <am.h>
#include <nemu.h>
#define GET_TIME() ((uint64_t) (uint32_t)inl(RTC_ADDR) | ((uint64_t) (uint32_t)inl(RTC_ADDR + 4) << 32))
uint64_t __timer_start;
void __am_timer_init() {
__timer_start = GET_TIME();
}
void __am_timer_uptime(AM_TIMER_UPTIME_T *uptime) {
(*(volatile AM_TIMER_UPTIME_T *)uptime).us = GET_TIME() - __timer_start;
}
void __am_timer_rtc(AM_TIMER_RTC_T *rtc) {
rtc->second = 0;
rtc->minute = 0;
rtc->hour = 0;
rtc->day = 0;
rtc->month = 0;
rtc->year = 1900;
}