38 cpu_io::CNTV_CTL_EL0::ENABLE::Clear();
39 cpu_io::CNTV_CTL_EL0::IMASK::Set();
41 cpu_io::CNTV_TVAL_EL0::Write(interval);
43 cpu_io::CNTV_CTL_EL0::ENABLE::Set();
44 cpu_io::CNTV_CTL_EL0::IMASK::Clear();
49 interval = BasicInfoSingleton::instance().interval / SIMPLEKERNEL_TICK;
52 timer_intid = KernelFdtSingleton::instance()
53 .GetAarch64Intid(
"arm,armv8-timer")
57 InterruptSingleton::instance().RegisterInterruptFunc(
58 timer_intid, InterruptDelegate::create<TimerHandler>());
62 cpu_io::CNTV_CTL_EL0::ENABLE::Clear();
63 cpu_io::CNTV_CTL_EL0::IMASK::Set();
65 cpu_io::CNTV_TVAL_EL0::Write(interval);
67 cpu_io::CNTV_CTL_EL0::ENABLE::Set();
68 cpu_io::CNTV_CTL_EL0::IMASK::Clear();
InterruptBase::InterruptDelegate InterruptDelegate