README_zh.md 1.4 KB

Clock Time 子系统

clock_time 子系统为 RT-Thread 提供统一的时间基准与事件调度能力。它将 “计时”(单调计数器)与“定时事件”(可编程定时器中断)解耦,允许不同硬件 组合,同时保证内核行为一致。

设计原则

  • 单调时间: 时间读数不回退。
  • 角色分离: 时钟源负责计数,时钟事件负责触发超时。
  • 缩放整数换算: 通过分辨率缩放因子把计数转换为纳秒,避免浮点计算。
  • 可降级运行: 缺少硬件事件时由软件定时器维持基本功能。

组成部分

  • 时钟源: 提供稳定计数器与频率信息。
  • 时钟事件: 可编程下一次超时。
  • 时钟定时器适配层: 将通用定时器外设包装为时钟源或事件设备。
  • 高精度定时器: 软件调度层,排序超时并驱动下一次事件。
  • 启动时间辅助: 将单调计数转换为常见时间格式,供上层使用。

时间流转

  • 读取路径: 计数 -> 缩放分辨率 -> 纳秒。
  • 超时路径: hrtimer 队列 -> 下一到期 -> 设置事件 -> 中断 -> 回调分发。

BSP 集成要点

  • 提供稳定计数器或可编程定时器,一个设备可兼任两种角色。
  • 选择默认的时钟源与事件设备,以获得准确计时与高效调度。
  • 中断服务保持简短,换算与调度交由核心完成。
  • POSIX 时间接口建立在该子系统之上,复用其单调时间基准。