Zephyr内核——内核服务(定时)——内核定时

Zephyr内核提供了一个强大的定时框架,支持精确的硬件定时源报告和跟踪定时事件。它包括时间单位转换、上电时间跟踪、超时处理等功能。超时使用k_timeout_t结构初始化,并在全局事件队列中管理。计时器驱动和SMP详情描述了多处理器环境下的计时处理。此外,时间切片和保留毫秒API的子系统确保了各种场景下的兼容性。
摘要由CSDN通过智能技术生成

内核定时

Zephyr提供了一个健壮的和可扩展的定时框架,以支持从任意精度的硬件定时源报告和跟踪定时事件。

时间单位

内核时间以多个用于不同目的的单元进行跟踪。

实时值通常以毫秒或微秒为单位指定,是应用程序代码时间的默认表示。它们具有普遍的便携性和可被广泛理解的优点,尽管它们可能与底层硬件的精度并不完全匹配。

内核通过k_cycle_get_32()k_cycle_get_64()api呈现一个“循环”计数。其目的是,这个计数器表示操作系统能够向用户呈现的最快的周期计数器(例如,一个CPU周期计数器),并且读取操作非常快。期望是非常敏感的应用程序代码可能以轮询方式使用它,以实现最大的精度。这个计数器的频率需要随着时间的推移保持稳定,并且可以从sys_clock_hw_cycles_per_sec()(几乎所有平台上都是一个运行时常数,计算结果为CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC)。

对于异步计时,内核定义了一个“tick”的概念。“tick”是内核执行所有内部正常运行时间和超时记账的内部计数。预计将在实际范围内的"tick"边界上提供中断,并且不跟踪部分“tick”。点击率的选择可以通过CONFIG_SYS_CLOCK_TICKS_PER_SEC进行配置。大多数硬件平台

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值