当前位置: 首页 > news >正文

RT-Thread 时钟管理

时钟管理

时钟是非常重要的概念,和朋友出去游玩需要约定时间,完成任务也需要花费时间,生活离不开时间。
操作系统也一样,需要通过时间来规范其任务的执行,操作系统中最小的时间单位是时钟节拍(OS Tick)。

时钟节拍

任何操作系统都需要提供一个时钟节拍,以供系统处理所有和时间有关的事件,如线程的延时、线程的时间片轮转调度以及定时器超时等。

时钟节拍是特定的周期性中断,这个中断可以看做是系统心跳,中断之间的时间间隔取决于不同的应用,一般是1ms-100ms,时钟节拍率越快,系统的实时响应越快,但是系统的额外开销就越大,从系统启动开始计数的时钟节拍数称为系统时间。

时钟节拍的实现方式

时钟节拍由配置为中断触发模式的硬件定时器产生,当中断到来时,将调用一次。

void SysTick_Handler(void)
{/* 进入中断 */rt_interrupt_enter();……rt_tick_increase();/* 退出中断 */rt_interrupt_leave();
}

定时器管理

定时器,是指从指定的时刻开始,经过一定的指定时间后触发一个事件,例如定个时间提醒第二天能够按时起床。

定时器有硬件定时器和软件定时器之分:

  1. 硬件定时器是芯片本身提供的定时功能。一般由外部晶振提供给芯片输入时钟,芯片向软件模块提供一组配置寄存器,接受控制输入,到达设定时间值后芯片中断控制器产生时钟中断。硬件定时器的精度一般很高,可以达到纳秒级别,并且是中断触发方式。
  2. 软件定时器是由操作系统提供的一类系统接口,它构建在硬件定时器基础之上,使系统能够提供不受数目限制的定时器服务。

操作系统提供的软件定时器,以时钟节拍为长度,定时数值必须是OS Tick的整数倍,例如一个 OS Tick 是 10ms,那么上层软件定时器只能是 10ms,20ms,100ms 等,而不能定时为 15ms。RT-Thread 的定时器也基于系统的节拍,提供了基于节拍整数倍的定时能力。

http://www.lryc.cn/news/254212.html

相关文章:

  • User: zhangflink is not allowed to impersonate zhangflink
  • 深入理解Sentinel系列-1.初识Sentinel
  • vue中字典的使用
  • AWS基于x86 vs Graviton(ARM)的RDS MySQL性能对比
  • ESP32 蓝牙音箱无法链接上电脑的解决:此项不起作用,请确保你的蓝牙设备仍可检测到
  • 会声会影2024软件还包含了视频教学以及模板素材
  • [Swift]RxSwift常见用法详解
  • 探索鸿蒙_ArkTs开发语言
  • 案例049:基于微信小程序的校园外卖平台设计与实现
  • 通过提示工程释放人工智能
  • 亚马逊云科技Serverless视频内容摘要提取方案
  • c语言:整数与浮点数在内存中的存储方式
  • dockerdesktop 导出镜像,导入镜像
  • 2-Django、Flask和Tornado三大主流框架对比
  • 【openssl】Window系统如何编译openssl
  • [leetcode 双指针]
  • Notepad++批量添加引号
  • HarmonyOS4.0从零开始的开发教程04 初识ArkTS开发语言(下)
  • Failed to connect to github.com port 443 after 21055 ms: Timed out
  • Python小技巧:冻结参数,让你的代码变简洁
  • 如何判断电脑电源质量的好坏?
  • 装饰器基础知识
  • 轻量封装WebGPU渲染系统示例<42>- vsm阴影实现过程(源码)
  • [Electron] 将应用日志文件输出
  • 特性【C#】
  • 理解SpringIOC和DI第一课(Spring的特点),IOC对应五大注解,ApplicationContext vs BeanFactory
  • 【微服务】分布式限流如何实现
  • 【S32K3环境搭建】-0.3-S32DS安装实时驱动RTD(Real-Time Driver)
  • 软件设计之适配器模式
  • 虚拟化逻辑架构:OVS 交换机与端口管理