FreeRTOS滴答

一、基本概念

  • 系统节拍定时器:是大多数嵌入式操作系统(包括 FreeRTOS)中用于提供时间基准的硬件定时器。它以固定的频率产生中断,这个中断间隔就被称为一个 “滴答”。
  • 例如:如果将系统节拍定时器配置为每 1 毫秒产生一次中断,那么每 1 毫秒就是一个滴答。

二、作用和重要性

  1. 任务调度
    • 时间片轮转调度:在一些操作系统中,当多个任务具有相同优先级时,会采用时间片轮转的调度方式。滴答中断用于划分时间片,当一个任务的时间片用完(即经过了若干个滴答),调度器会将 CPU 切换到下一个同优先级的任务,确保各个任务公平地共享 CPU 资源。
    • 确定任务延迟时间:当任务调用阻塞函数(如 vTaskDelay ())来延迟一段时间时,系统是通过滴答中断来计数和计时的。例如,任务调用 vTaskDelay (100),如果滴答周期是 1 毫秒,那么任务将阻塞 100 毫秒,即等待 100 个滴答中断后才会重新进入就绪状态。
  2. 系统计时
    • 提供时间基准:用于记录系统运行的时间,操作系统可以根据滴答中断的次数来计算系统已经运行了多长时间,这对于一些需要时间戳、超时检测等功能的应用非常重要。
    • 例如:在一个数据采集系统中,可能需要每隔一定时间(如 1 秒,即 1000 个滴答,如果滴答周期是 1 毫秒)采集一次数据,就可以利用滴答中断来实现定时采集。
  3. 资源管理
    • 空闲任务:在没有其他任务可运行时,操作系统会运行空闲任务。空闲任务通常会在每个滴答中断中执行一些系统维护操作,如清理内存碎片等。
    • 看门狗喂狗:在一些系统中,硬件看门狗定时器需要定期被 “喂狗”(即重置定时器),以防止系统被复位。可以在滴答中断处理函数中进行看门狗喂狗操作,确保系统正常运行。

三、配置和使用要点

  1. 滴答周期设置
    • 根据需求确定:滴答周期的设置需要综合考虑系统的实时性要求、任务的时间精度需求以及 CPU 的负载等因素。如果滴答周期太短,会导致频繁的中断,增加 CPU 的开销;如果滴答周期太长,可能无法满足一些对时间精度要求较高的任务。
    • 常见设置:在许多嵌入式系统中,滴答周期通常设置为 1 毫秒到 10 毫秒之间。例如,对于一些对实时性要求较高的工业控制应用,可能会设置为 1 毫秒;而对于一些资源受限、对实时性要求不是特别苛刻的系统,可能会设置为 5 毫秒或 10 毫秒。
  2. 中断处理函数
    • 尽量简短高效:滴答中断处理函数会在每个滴答周期被执行,因此需要尽量简短高效,避免在中断处理函数中执行耗时较长的操作,以免影响系统的实时性和其他任务的正常运行。
    • 例如:在滴答中断处理函数中,一般只进行一些简单的计数操作、任务状态更新等,而将复杂的处理逻辑放在任务中执行。

总之,滴答是嵌入式操作系统中一个非常重要的概念,它为系统提供了时间基准,是实现任务调度、系统计时和资源管理等功能的基础。合理配置和使用滴答,可以提高系统的稳定性和实时性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值