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

news/2024/12/5 13:25:49/

关注+星标公众,不错过精彩内容

作者 | strongerHuang

微信公众号 | 嵌入式专栏

最近有读者问了这么一个问题:为啥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值可以适当配置第一点;

······

------------ END ------------

后台回复『RTOS』『嵌入式软件设计与开发』相关文章。

欢迎关注我的公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。

欢迎关注我的视频号:

点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。


http://www.ppmy.cn/news/517115.html

相关文章

linux线程时间片是多少合适,嵌入式linux 线程内usleep与cpu调度时间片大小分析

1.在嵌入式linux平台下调用sleep或者usleep函数的CPU线程调度情况? 2.开发板上使用的时at91sam9261 ARM9 CPU芯片,主频240M,操作系统是linux2.6.28.10版本,那么在该操作系统下的线程调度的切换CPU时间片是多长,网上有地方说是linu…

sqlserver对cpu主频要求_记一次SQLServer服务器CPU飙升100%的处理

某集团一台sqlserver服务器,据系统管理员反应,经常会出现CPU飙到100%而且高居不下的情况,然后应用层会出现各种等待超时。 服务器配置:windows server 2008R2 x64 + 32GB内存 +6核CPU,业务量不算特别繁忙,按理CPU使用率不会很高。 首先确认CPU高是否确实是由SQLSERVER导致…

linux cpu控制软件下载,Linux CPU频率控制

Linux 内部共有五种对频率的管理策略 userspace , conservative , ondemand , powersave 和 performance。 l performance : CPU 会固定工作在其支持的最高运行频率上; l powersave : CPU 会固定工作在…

计算机专业需要单核还是多核,CPU主频指的是单核还是多核,多核计算机是指计算机有多个CPU-...

小伙伴周末的留言里有几个人一直问买什么CPU合适。 如果仅仅是单纯看钱,那小编的回答肯定是在你经济承受范围内最贵的那个最合适。 不过呢,因为大家的需求各不相同,CPU可真不是靠钱衡量就可以的,今天小编就针对大家选择CPU时的误区…

linux内核 频率,Linux内核中CPU主频和电压调整 (三)

如何开发一个新的CPUFreq driver 初始化 首先,在一个 __initcall level 7后者以后的函数中检查内核是否运行在正确的CPU和正确的芯片组上面。 如果正确,则通过cpufreq_register_driver() 函数, 注册一个cpufreq_driver结构体。 cpufreq_drive…

linux 失能鼠标,Linux内核中CPU主频和电压调整 (一)

通过动态改变CPU电压,可以调整CPU主频。 通过改变时钟倍数可以动态改变CPU时钟频率。 一些具有CPU主频率时钟倍数可调能力的处理器,能够在不同的主频率和工作电压之间动态切换;而不需要内核或者用户介入。 术语定义 策略 (Policy) &#xff1…

多核cpu应用场景_1分钟搞懂 CPU该买多核还是高主频?

小伙伴周末的留言里有几个人一直问买什么CPU合适。如果仅仅是单纯看钱,那小编的回答肯定是在你经济承受范围内最贵的那个最合适。不过呢,因为大家的需求各不相同,CPU可真不是靠钱衡量就可以的,今天小编就针对大家选择CPU时的误区说说。 多核心还是主频? 先说说多核心和主频…

spring框架-概述(spring特性、生命周期)(一)

文章目录 什么是springspring重要特性spring生命周期知识扩展 什么是spring Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器 ,是为了解决企业级编程开发中的复杂性,实现敏捷开发…