当前位置:首页 > 嵌入式 > 嵌入式客栈
[导读]最近有读者问了这么一个问题:为啥RTOS的系统滴答(Tick)默认配置都是1000,我配置为100、10000,或者2000可以不?相信很多初学者都有这个疑问,包括我初学RTOS也曾困惑滴答配置不同值到底有啥不同和影响。今天就来简单说下关于RTOS系统滴答的内容!什么是系统滴答?...

最近有读者问了这么一个问题:为啥RTOS的系统滴答(Tick)默认配置都是1000,我配置为100、10000,或者2000可以不?


相信很多初学者都有这个疑问,包括我初学RTOS也曾困惑滴答配置不同值到底有啥不同和影响。
今天就来简单说下关于RTOS系统滴答的内容!
什么是系统滴答?

系统滴答(SysTick),有些地方也叫时钟节拍、系统心跳等。


操作系统可以多任务间进行切换,就是靠一个系统定时器**频中断,为操作系统提供调度(上下文切换)才能实现任务切换。


而这个定时器,就是我们本文说的系统滴答。


早些年的51、430单片机,跑RTOS,都是单独利用一个Timer定时器提供系统滴答。


为了考虑跑RTOS这个问题,Cortex-M内核自带系统滴答这个定时器。


你会发现市面上很多单片机基本都自带有SysTick这个定时器,像Cortex-M0、 M3、 M4这些内核的单片机都有的,而且只要简单调用官方写好的API函数即可使用。


系统配置文件

通常,系统滴答(OS_TICKS)位于系统配置文件中,对系统配置文件进行配置也是重要的一步。(一些系统通过图形化界面进行配置,其实也是对系统配置文件进行配置


比如FreeRTOSConfig.h


再比如ucos系统的os_cfg.h


OS_TICKS一般是配置为1000,从宏定义和注释很容易理解,就是每秒系统滴答的次数。


这里的配置选项很多,初学者可能不理解一些选项的含义,可以使用官方默认配置即可,等熟悉到一定程度,这些配置选项自然就理解了。


系统滴答配置多少才合适?

系统滴答配置1000,代表系统1ms要进行一次轮转调度,检查是否有更高优先级任务要执行(并切换任务)。


1ms是什么概念? 

可能你认为1ms时间好短,但对于操作系统而言,1ms的时间却是很长。


100M主频的单片机,执行一次调度(几十条语句),时间在us级别,你说1ms对于系统而言有多长?


为啥配置为1000?

肯定很多人有这个疑问,配置为1000,为啥不是100、10000,或者2000?


1000是一个比较适合的中等值,其他100、10000,或者2000也可以,只是不利于系统以及编程。


a.如果滴答太大,10K,甚至100K,对系统的负担比较大。因为自身调度会占用CPU时间。


b.1ms滴答一次,方便编程系统延时。2k、10k这种值,在用到系统延时时,不方便计算。


vTaskDelay(1000);

如果滴答值为1000,则代表延时1秒;

如果滴答值为2000,则代表延时0.5秒,很明显这种不利于编程;


配置为其他数值有啥影响?

除1000之外,方便计算延时的就是1,或者1M。(很明显1或者1M都不现实


配置为1,系统1秒才响应一次,这还叫实时操作系统?


配置为1M,1us调度一次,CPU基本都在做调度的工作,不用干其他事了。


除此之外,100、10000,或者2000,就是延时计算不方便之外,按理说也是可以的。


小结

1.实时操作系统的SysTick,在没有特殊情况下,最好默认配置1000;


2.在系统允许的情况下,SysTick数值越大,系统实时性越高;反之实时性越差;


3.主频相对偏低(比如低于10M)的处理器,SysTick值可以适当配置第一点;

ickname="嵌入式客栈" data-alias="embInn" data-signature="逸珺,15年老兵,分享Linux、单片机、信号处理、C/C 编程等经验。" data-from="0">

—— The End —
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭