# Clock Time 子系统 clock_time 子系统为 RT-Thread 提供统一的时间基准与事件调度能力。它将 “计时”(单调计数器)与“定时事件”(可编程定时器中断)解耦,允许不同硬件 组合,同时保证内核行为一致。 ## 设计原则 - 单调时间: 时间读数不回退。 - 角色分离: 时钟源负责计数,时钟事件负责触发超时。 - 缩放整数换算: 通过分辨率缩放因子把计数转换为纳秒,避免浮点计算。 - 可降级运行: 缺少硬件事件时由软件定时器维持基本功能。 ## 组成部分 - 时钟源: 提供稳定计数器与频率信息。 - 时钟事件: 可编程下一次超时。 - 时钟定时器适配层: 将通用定时器外设包装为时钟源或事件设备。 - 高精度定时器: 软件调度层,排序超时并驱动下一次事件。 - 启动时间辅助: 将单调计数转换为常见时间格式,供上层使用。 ## 时间流转 - 读取路径: 计数 -> 缩放分辨率 -> 纳秒。 - 超时路径: hrtimer 队列 -> 下一到期 -> 设置事件 -> 中断 -> 回调分发。 ## BSP 集成要点 - 提供稳定计数器或可编程定时器,一个设备可兼任两种角色。 - 选择默认的时钟源与事件设备,以获得准确计时与高效调度。 - 中断服务保持简短,换算与调度交由核心完成。 - POSIX 时间接口建立在该子系统之上,复用其单调时间基准。