更新日期: 2022/06/01 来源: https://gitee.com/weharmony/kernel_liteos_a_note
los_sys.c 文件参考

系统时间转化 更多...

浏览源代码.

函数

LITE_OS_SEC_TEXT_MINOR UINT64 LOS_TickCountGet (VOID)
 获取自系统启动以来的Tick数 更多...
 
LITE_OS_SEC_TEXT_MINOR UINT32 LOS_CyclePerTickGet (VOID)
 每个Tick多少Cycle数 更多...
 
LITE_OS_SEC_TEXT_MINOR UINT32 LOS_MS2Tick (UINT32 millisec)
 毫秒转换成Tick 更多...
 
LITE_OS_SEC_TEXT_MINOR UINT32 LOS_Tick2MS (UINT32 tick)
 Tick转化为毫秒 更多...
 
LITE_OS_SEC_TEXT_MINOR UINT32 OsNS2Tick (UINT64 nanoseconds)
 纳秒转化成 tick 更多...
 

详细描述

系统时间转化

http://weharmonyos.com/openharmony/zh-cn/device-dev/kernel/kernel-small-basic-time.html

 基本概念 
    时间管理以系统时钟为基础,给应用程序提供所有和时间有关的服务。

    系统时钟是由定时器/计数器产生的输出脉冲触发中断产生的,一般定义为整数或长整数。
    输出脉冲的周期叫做一个“时钟滴答”。系统时钟也称为时标或者Tick。

    用户以秒、毫秒为单位计时,而操作系统以Tick为单位计时,当用户需要对系统进行操作时,
    例如任务挂起、延时等,此时需要时间管理模块对Tick和秒/毫秒进行转换。
    时间管理模块提供时间转换、统计、延迟功能

 相关概念   
    Cycle   
    系统最小的计时单位。Cycle的时长由系统主时钟频率决定,系统主时钟频率就是每秒钟的Cycle数。

    Tick    
    Tick是操作系统的基本时间单位,由用户配置的每秒Tick数决定。

 使用场景   
    用户需要了解当前系统运行的时间以及Tick与秒、毫秒之间的转换关系等。 

 时间管理的典型开发流程    
    根据实际需求,在板级配置适配时确认是否使能LOSCFG_BASE_CORE_TICK_HW_TIME宏选择外部定时器,
    并配置系统主时钟频率OS_SYS_CLOCK(单位Hz)。OS_SYS_CLOCK的默认值基于硬件平台配置。
    通过make menuconfig配置LOSCFG_BASE_CORE_TICK_PER_SECOND。

 参考 
    http://weharmonyos.com/openharmony/zh-cn/device-dev/kernel/kernel-small-basic-time.html
注意
获取系统Tick数需要在系统时钟使能之后。 时间管理不是单独的功能模块,依赖于los_config.h中的OS_SYS_CLOCK和LOSCFG_BASE_CORE_TICK_PER_SECOND两个配置选项。 系统的Tick数在关中断的情况下不进行计数,故系统Tick数不能作为准确时间计算。

在文件 los_sys.c 中定义.