良许Linux教程网 干货合集 实时操作系统的滴答Tick设置多少才合适?

实时操作系统的滴答Tick设置多少才合适?

最近有一位读者提出了一个问题:为什么RTOS的系统滴答(Tick)默认配置都是1000,我能否将其配置为100、10000或者2000?这个问题也困扰了许多初学者,包括我在初学RTOS时也曾对滴答配置不同的值有所疑惑。

今天我将简单地介绍一下有关RTOS系统滴答的内容!

什么是系统滴答?

系统滴答(SysTick),有时也被称为时钟节拍、系统心跳等。

操作系统能够在多个任务之间进行切换,依靠的是一个系统定时器按照一定的频率进行中断,为操作系统提供调度(上下文切换)的能力,从而实现任务之间的切换。系统滴答实际上就是这个定时器的中断触发信号,用于告诉操作系统何时进行任务切换。

image-20231120223028859
image-20231120223028859

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

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

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

image-20231120223033302
image-20231120223033302

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

系统配置文件

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

比如FreeRTOSConfig.h

image-20231120223036866
image-20231120223036866

再比如ucos系统的os_cfg.h

image-20231120223041465
image-20231120223041465

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值可以适当配置第一点;

······

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部