SylixOS时间变换介绍

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SylixOS时间变换介绍相关的知识,希望对你有一定的参考价值。

[TOC]

1、概述

SylixOS中提供了时间变换相关接口,主要用于计算两个时间点之差以及根据入参时间timespec计算超时时间。

2、接口介绍

2.1 计算两个时间点之差

SylixOS中用于计算两个时间点之差的接口函数原型如下:

ULONG  __timespecToTickDiff (const struct timespec  *ptvS,
                              const struct timespec  *ptvE);
INT64  __timespecToTickDiff64 (const struct timespec  *ptvS,
                                const struct timespec  *ptvE);

函数原型分析:
? - 函数返回两个时间点之差,并转换为tick数;
? - 参数ptvS是开始时间;
? - 参数ptvE是结束时间。
以上两个函数接口入参定义相同,唯一的区别是返回值分别是32位和64位数值。

2.2 根据timespec计算超时时间

SylixOS中用于计算超时时间的接口函数原型如下:

ULONG  __timespecTimeoutTick (BOOL  bRel, const struct timespec  *ptv);
INT64  __timespecTimeoutTick64 (BOOL  bRel, const struct timespec  *ptv);

函数原型分析:
? - 函数返回超时时间(用tick数表示);
? - 参数bRel是判断相对时间还是绝对时间;
? - 若计算相对超时时间,参数ptv是当前时间与结束时间的间隔,需根据当前时间计算结束时间点;若计算绝对超时时间,则参数ptv即为结束时间点。
以上两个函数接口入参定义相同,唯一的区别是返回值分别是32位和64位数值。

3、 超时时间计算流程

根据上一章节可以看出计算超时时间分为相对时间和绝对时间,两者计算方法不同。现以__timespecTimeoutTick为例,分析其具体计算流程如下图所示。
技术分享图片

由上图可以看出,当计算相对超时时间时,需根据入参时间计算结束时间,再根据结束时间和当前时间的差值计算超时时间;当计算绝对超时时间时,入参即为结束时间,可直接计算超时时间并返回。

以上是关于SylixOS时间变换介绍的主要内容,如果未能解决你的问题,请参考以下文章

SylixOS功能点介绍

SylixOS 调试方法详解——静态代码分析

SylixOS USB Gadget层介绍

SylixOS RTC介绍

SylixOS上EtherCAT实现

SylixOS串口调试详解