时间实用程序
概述
Zephyr的正常运行时间是基于一个滴答计数器。使用默认的CONFIG_TICKLESS_KERNEL,这个计数器在系统启动时以名义上恒定的速率从零前进。类似于这个计数器的POSIX类似于CLOCK_MONOTONIC,或者在Linux中是CLOCK_MONOTONIC_RAW。k_uptime_get()提供了这个时间的一个毫秒表示。
应用程序通常需要将Zephyr的内部时间与日常生活中使用的外部时间尺度联系起来,如当地时间或协调的世界时。这些系统以不同的方式解释时间,并可能由于闰秒和夏令时等本地时间偏移而产生不连续性。
由于这些不连续性,以及循环计数器下面的时钟的显著不准确性,从Zephyr时钟估计的时间和“实际”民用时间尺度中的实际时间之间的偏移不是恒定的,并且在Zephyr应用程序的运行时间中会有很大的变化。
该实用程序API支持的时间为:
- 时间表示之间的转换
- 同步和对齐时间尺度
有关支持这些功能的术语和概念,请参见Zephyr中时间支持的概念。
表示转换
时间尺度实例可以用多种方式表示,包括:
一个时代以来的几秒钟。这种形式中的时间的POSIX表示包括time_t和结构体时间pec,它们通常被解释为“UNIX时间”的表示。
日历时间分别为一年、月、日、小时、分钟和秒。这种形式中的时间的PO
Zephyr内核使用滴答计数器作为正常运行时间,但应用程序需要将其与外部时间尺度如UTC或当地时间同步。时间实用程序API支持时间表示转换、时间尺度同步。转换涉及秒和日历时间的相互转换,同步处理不同时间尺度的速率和偏移误差。Zephyr的时间支持概念包括单调、连续和不连续的时间尺度,如TAI、UTC和POSIX时间。API提供了与外部源如GPS或蓝牙网格时间对齐的功能。
订阅专栏 解锁全文
372

被折叠的 条评论
为什么被折叠?



