一、基本概念
- 系统节拍定时器:是大多数嵌入式操作系统(包括 FreeRTOS)中用于提供时间基准的硬件定时器。它以固定的频率产生中断,这个中断间隔就被称为一个 “滴答”。
- 例如:如果将系统节拍定时器配置为每 1 毫秒产生一次中断,那么每 1 毫秒就是一个滴答。
二、作用和重要性
- 任务调度:
- 时间片轮转调度:在一些操作系统中,当多个任务具有相同优先级时,会采用时间片轮转的调度方式。滴答中断用于划分时间片,当一个任务的时间片用完(即经过了若干个滴答),调度器会将 CPU 切换到下一个同优先级的任务,确保各个任务公平地共享 CPU 资源。
- 确定任务延迟时间:当任务调用阻塞函数(如 vTaskDelay ())来延迟一段时间时,系统是通过滴答中断来计数和计时的。例如,任务调用 vTaskDelay (100),如果滴答周期是 1 毫秒,那么任务将阻塞 100 毫秒,即等待 100 个滴答中断后才会重新进入就绪状态。
- 系统计时:
- 提供时间基准:用于记录系统运行的时间,操作系统可以根据滴答中断的次数来计算系统已经运行了多长时间,这对于一些需要时间戳、超时检测等功能的应用非常重要。
- 例如:在一个数据采集系统中,可能需要每隔一定时间(如 1 秒,即 1000 个滴答,如果滴答周期是 1 毫秒)采集一次数据,就可以利用滴答中断来实现定时采集。
- 资源管理:
- 空闲任务:在没有其他任务可运行时,操作系统会运行空闲任务。空闲任务通常会在每个滴答中断中执行一些系统维护操作,如清理内存碎片等。
- 看门狗喂狗:在一些系统中,硬件看门狗定时器需要定期被 “喂狗”(即重置定时器),以防止系统被复位。可以在滴答中断处理函数中进行看门狗喂狗操作,确保系统正常运行。
三、配置和使用要点
- 滴答周期设置:
- 根据需求确定:滴答周期的设置需要综合考虑系统的实时性要求、任务的时间精度需求以及 CPU 的负载等因素。如果滴答周期太短,会导致频繁的中断,增加 CPU 的开销;如果滴答周期太长,可能无法满足一些对时间精度要求较高的任务。
- 常见设置:在许多嵌入式系统中,滴答周期通常设置为 1 毫秒到 10 毫秒之间。例如,对于一些对实时性要求较高的工业控制应用,可能会设置为 1 毫秒;而对于一些资源受限、对实时性要求不是特别苛刻的系统,可能会设置为 5 毫秒或 10 毫秒。
- 中断处理函数:
- 尽量简短高效:滴答中断处理函数会在每个滴答周期被执行,因此需要尽量简短高效,避免在中断处理函数中执行耗时较长的操作,以免影响系统的实时性和其他任务的正常运行。
- 例如:在滴答中断处理函数中,一般只进行一些简单的计数操作、任务状态更新等,而将复杂的处理逻辑放在任务中执行。
总之,滴答是嵌入式操作系统中一个非常重要的概念,它为系统提供了时间基准,是实现任务调度、系统计时和资源管理等功能的基础。合理配置和使用滴答,可以提高系统的稳定性和实时性。

5395

被折叠的 条评论
为什么被折叠?



