1 /* 2 * Copyright (c) 2006-2023, RT-Thread Development Team 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 * 6 * Change Logs: 7 * Date Author Notes 8 * 2023-07-10 xqyjlj The first version. 9 */ 10 11 #include "gtimer.h" 12 #include "ktime.h" 13 14 static volatile unsigned long _init_cnt = 0; 15 rt_ktime_cputimer_getres(void)16rt_uint64_t rt_ktime_cputimer_getres(void) 17 { 18 return ((1000ULL * 1000 * 1000) * RT_KTIME_RESMUL) / rt_hw_get_gtimer_frq(); 19 } 20 rt_ktime_cputimer_getfrq(void)21unsigned long rt_ktime_cputimer_getfrq(void) 22 { 23 return rt_hw_get_gtimer_frq(); 24 } 25 rt_ktime_cputimer_getcnt(void)26unsigned long rt_ktime_cputimer_getcnt(void) 27 { 28 return rt_hw_get_cntpct_val() - _init_cnt; 29 } 30 rt_ktime_cputimer_getstep(void)31unsigned long rt_ktime_cputimer_getstep(void) 32 { 33 return rt_ktime_cputimer_getfrq() / RT_TICK_PER_SECOND; 34 } 35 rt_ktime_cputimer_init(void)36void rt_ktime_cputimer_init(void) 37 { 38 _init_cnt = rt_hw_get_cntpct_val(); 39 } 40