boottime 辅助函数将 clock_time 的单调计数转换为常见时间格式,返回值表示 “系统启动以来的时间”,不受 RTC 或墙上时间设置影响。
rt_err_t rt_clock_boottime_get_us(struct timeval *tv);
rt_err_t rt_clock_boottime_get_s(time_t *t);
rt_err_t rt_clock_boottime_get_ns(struct timespec *ts);
成功返回 RT_EOK;若时钟源不可用则返回 -RT_ERROR。返回值单调递增,适合用于 测量耗时。
rt_err_t rt_clock_boottime_get_us(struct timeval *tv);
tv 需为有效的 struct timeval 指针。tv。tv_usec 由 clock_time 分辨率换算而来,不一定严格为 1 us 精度。rt_err_t rt_clock_boottime_get_s(time_t *t);
t 需为有效的 time_t 指针。*t。rt_err_t rt_clock_boottime_get_ns(struct timespec *ts);
ts 需为有效的 struct timespec 指针。ts。tv_nsec 的精度取决于计数频率,不一定达到 1 ns。#include <drivers/clock_time.h>
static void demo_boottime(void)
{
struct timespec ts;
if (rt_clock_boottime_get_ns(&ts) == RT_EOK)
{
rt_kprintf("boottime: %ld.%09ld\n", (long)ts.tv_sec, ts.tv_nsec);
}
}