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

作者 | 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”查看更多内容。

欢迎关注我的视频号:

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

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

  1. ttl值设置多少才合适

    之前,公司用户的手机app用户出现了手机无法联网,移动.联通.电信.就是因为ttl值设置的问题. 服务器 阿里云 centos 6.5 我们在解析域名时经常出现 TTL 这个字段,里面默认写的是10分 ...

  2. 如何选择DNS的TTL值,设置多少才合适 ?

    知名网络安全专家,东方联盟创始人郭盛华透露:"关于如何为域名选择DNS生存时间(TTL),TTL非常重要,因为它们间接控制解析器缓存记录的时间,直接影响用户体验" . 在东方联盟D ...

  3. 系统滴答及Systick定时器

    1. 概述 操作系统需要有一个系统的滴答来提供任务管理的时间依据,bcos中的任务延时及tasklet的定时都是依据系统滴答.系统滴答需要一个定时器来提供时间基准,几乎所有的CPU都会提供一个滴答定时 ...

  4. 滴答定时器的计数模式_SysTick(系统滴答定时器)

    一.SysTick概述 Systick定时器是一个24 位的倒计数定时器,计到0时,将从RELOAD 寄存器中自动重装载定时初值.只要不把它在SysTick 控制及状态寄存器中的使能位清除,就永不停息 ...

  5. 【Java 8 新特性】Java Clock tick() 设置时间最小跳动间隔

    Clock.tick获得一个时钟,它返回从指定时钟截断到最近出现的指定持续时间的实例. 截断的时刻将小于接近指定持续时间的实际时刻,最小的时间单位是指定的时间单位. 获得的时钟将只按照指定的持续时间进 ...

  6. stm32零星笔记(一)——sysTick滴答计时器、RTC实时时钟

    目录 什么是sysTick.RTC 关于时钟树 功能 延时 阻塞延时 非阻塞延时的一种近似实现 秒中断 日历与时间 RTC(Real Time Clock,实时时钟) 日期掉电保持 什么是sysTic ...

  7. FreeRTOS实时操作系统(七)时间片调度及RTOS的滴答定时器

    系列文章目录 FreeRTOS实时操作系统(一)RTOS的基本概念 FreeRTOS实时操作系统(二)任务创建与任务删除(HAL库) FreeRTOS实时操作系统(三)任务挂起与恢复 FreeRTOS ...

  8. cube 设置滴答定时器_stm32cubemx生成的代码总是进入滴答定时器中断

    最近stm32cubemx生成的代码总是进入滴答定时器中断,调了好长时间才发现,原来有好几个地方都在设置滴答定时器,最后我把 uint32_t HAL_SYSTICK_Config(uint32_t ...

  9. 滴答顺风车怎么抢90%以上的订单_顺风车这样做才是对的,其他都是扯淡!

    作为车主,很早就注册过滴滴.滴答.哈罗平台,自从滴滴顺风车"自工"后,每个月接3-5次滴答顺风车,哈罗价太低,顺路度低基本不接. 作为乘客,偶尔打滴滴专车,出租车,仅打过一次顺风车 ...

最新文章

  1. 容斥原理学习(Hdu 4135,Hdu 1796)
  2. ubuntu下磁道坏区的检测与修复
  3. 淺談Raid Cache Memory上應用的問題和實踐
  4. Android --- no module 问题
  5. c语言链表查找的代码与题目,链表的C语言实现之单链表的查找运算_c语言
  6. shell if else 用法 syntax error near unexpected token `then'
  7. Java 字符串 String 与整数型 int 之间的转换
  8. C#基础加强(8)之委托和事件
  9. CVPR 2019 | 微软亚洲研究院 7 篇精选论文解读
  10. 【Java】Java中的设计模式的介绍以及代码详解
  11. Pytorch——用50行代码搭建ResNet
  12. 2018,扬帆起航!
  13. android-常用部件
  14. 配置IDEA运行环境
  15. python做词云的图片素材_还在为专栏封面发愁?我用Python写了个词云生成器!
  16. python批量发送不同附件_python批量发送带附件邮件
  17. Error:403 No valid crumb was included in the request
  18. mongoose 之Shema
  19. Android 增量更新
  20. 自行车不可以上高速,但是为什么有的人可以从北京骑到西藏?

热门文章

  1. 如何防止因哈希碰撞引起的DoS攻击
  2. html表单数据提交服务器,form表单提交数据到服务器
  3. 钉钉流程报销付款的一种解决方案
  4. 抓取dump的工具ProcDump使用
  5. cccc天梯赛 2018 赛后总结
  6. 史上最全面的FRM与CFA的区别对比分析,适合新人看
  7. 韩寒代言 一加手机3”盲售“手机行业的创新开创者 一加手机3
  8. 手机适配之 dimen 基础知识
  9. 打印所有的水仙花数python_打印出10000以内的所有的水仙花数——python
  10. Ubuntu 添加用户到sudoers