系统节拍机制(Tick System)
Tick System 是 RTOS 的时间基准来源,通过周期性中断驱动任务调度、 延时计数与时间片轮转,是整个实时系统的“心跳机制”。
机制定义
Tick = 周期性中断 + 时间基准 + 调度触发源
Time Tick System = Hardware Timer Interrupt + Kernel Time Base + Scheduler Trigger + Delay Engine Driver
系统地位
Tick is the root timing driver of RTOS. All scheduling, delay, timeout and synchronization are derived from it.
核心作用
时间基准
提供系统统一时间源,用于 delay / timeout / schedule。
任务调度触发
每次 Tick 触发调度器检查是否需要切换任务。
延时递减
所有 delay 计数器在 Tick 中断中递减。
时间片控制
支持 Round-Robin 等时间片轮转机制。
系统驱动源
所有任务调度行为依赖 Tick 触发。
执行流程
1. 定时器中断触发
硬件定时器周期性产生 Tick 中断。
2. Tick计数更新
系统全局时间计数递增。
3. 延时队列处理
所有阻塞任务的 delay 倒计时递减。
4. 调度器检查
判断是否发生任务切换。
演示代码
/* HRTOS Tick System Demo */
#include <HRTOS_KERNEL.H>
#include <HRTOS.H>
/* Tick中断服务函数 */
void SysTick_Handler(void)
{
os_tick_increment(); // 系统时间+1
os_delay_decrement(); // delay队列处理
os_schedule_check(); // 是否触发调度
}
/* 初始化Tick */
void tick_init(void)
{
os_tick_config(1000); // 1ms Tick
}
/* main */
void main(void)
{
tick_init();
os_scheduling(1);
while(1)
{
os_nop();
}
}
系统意义
Tick System 是 RTOS 的时间核心,其频率直接影响实时性、CPU开销与调度精度。 在 HRTOS 中,Tick 被优化为“最小中断路径”以降低系统延迟。
API 接口: Tick System API