XWOS API  3.0
XWOS API参考手册
载入中...
搜索中...
未找到
时间 的协作图:

宏定义

#define XWTM_TC_PER_S   XWOSDL_SKD_TC_PER_S
 

函数

static xwtm_t xwtm_now (void)
 XWOS API:获取当前CPU的系统时间点
 
static xwtm_t xwtm_ft (xwtm_t dur)
 XWOS API:获取当前CPU的未来 系统时间
 
static xwtm_t xwtm_nowts (void)
 XWOS API:获取当前CPU的系统时间戳
 
static xwtm_t xwtm_fts (xwtm_t dur)
 XWOS API:获取当前CPU的未来 系统时间戳
 
static xwu64_t xwtm_nowtc (void)
 XWOS API:获取当前CPU的系统滴答计数
 

详细描述

XWOS的 时间xwtm_t 表示。 xwtm_t 是一个有符号的64位整数,单位为 纳秒 。参考 XWOS的时间类型

获取当前的系统时间

获取未来的系统时间

宏定义说明

◆ XWTM_TC_PER_S

#define XWTM_TC_PER_S   XWOSDL_SKD_TC_PER_S

每秒滴答定时器中断的次数

在文件 time.h38 行定义.

函数说明

◆ xwtm_ft()

static xwtm_t xwtm_ft ( xwtm_t  dur)
inlinestatic

XWOS API:获取当前CPU的未来 系统时间

参数
[in]dur从现在开始到未来的时间
返回
未来时间点
注解
  • 上下文:线程、中断、中断底半部、空闲任务

未来系统时间点 = 当前系统时间点 + dur

在文件 time.h69 行定义.

70{
71 xwtm_t from;
72 xwtm_t to;
73
74 from = xwtm_now();
75 to = xwtm_add_safely(from, dur);
76 return to;
77}
static __xwcc_inline xwtm_t xwtm_add_safely(const xwtm_t a, const xwtm_t b)
将两个系统时间相加,并检查溢出
Definition type.h:842
xws64_t xwtm_t
XWOS系统时间(有符号)
Definition type.h:213
static xwtm_t xwtm_now(void)
XWOS API:获取当前CPU的系统时间点
Definition time.h:54
函数调用图:
这是这个函数的调用关系图:

◆ xwtm_fts()

static xwtm_t xwtm_fts ( xwtm_t  dur)
inlinestatic

XWOS API:获取当前CPU的未来 系统时间戳

参数
[in]dur从现在开始到未来的时间
返回
未来时间
注解
  • 上下文:线程、中断、中断底半部、空闲任务

未来时间戳 = 当前时间时间戳 + dur

在文件 time.h111 行定义.

112{
113 xwtm_t from;
114 xwtm_t to;
115
116 from = xwtm_nowts();
117 to = xwtm_add_safely(from, dur);
118 return to;
119}
static xwtm_t xwtm_nowts(void)
XWOS API:获取当前CPU的系统时间戳
Definition time.h:96
函数调用图:

◆ xwtm_now()

static xwtm_t xwtm_now ( void  )
inlinestatic

XWOS API:获取当前CPU的系统时间点

返回
当前时间点
注解
  • 上下文:线程、中断、中断底半部、空闲任务

XWOS中,每个CPU都有一个私有的滴答定时器,产生周期性的定时中断。 系统时间 在每次中断时都会增加一次。

系统时间 是每CPU私有变量。代码运行在哪个CPU,访问的就是哪个私有变量。

XWOS的系统时间 = 滴答时间定时器中断的次数 * 中断的周期(以纳秒为单位)

在文件 time.h54 行定义.

55{
56 return xwosdl_skd_get_timetick_lc();
57}
这是这个函数的调用关系图:

◆ xwtm_nowtc()

static xwu64_t xwtm_nowtc ( void  )
inlinestatic

XWOS API:获取当前CPU的系统滴答计数

返回
滴答计数
注解
  • 上下文:线程、中断、中断底半部、空闲任务

系统滴答计数 是每CPU私有变量。代码运行在哪个CPU,访问的就是哪个私有变量。

XWOS的系统滴答计数 = 滴答时间定时器中断的次数

在文件 time.h132 行定义.

133{
134 return xwosdl_skd_get_tickcount_lc();
135}

◆ xwtm_nowts()

static xwtm_t xwtm_nowts ( void  )
inlinestatic

XWOS API:获取当前CPU的系统时间戳

返回
当前系统时间戳
注解
  • 上下文:线程、中断、中断底半部、空闲任务

系统时间戳 类似于 系统时间 。但是 系统时间 只会在滴答定时器的 每次中断时才增加一次,两次中断之间不会发生变化。

通过获取滴答定时器的计数器的值,计算出上一次中断后经过了多少时间, 再累加到 系统时间 上,即为 系统时间戳

系统时间戳 是每CPU私有变量。代码运行在哪个CPU,访问的就是哪个私有变量。

XWOS的系统时间戳 = XWOS的系统时间 + 滴答定时器距离下一次中断还有多少时间

在文件 time.h96 行定义.

97{
98 return xwosdl_skd_get_timestamp_lc();
99}
这是这个函数的调用关系图: