RTOS滴答Tick设置多少才合适

2023-05-16

    本文转载,留作笔记,如有侵权,请联系删除,原文链接地址:

嵌入式开发 | RTOS滴答Tick设置多少才合适? (qq.com)https://mp.weixin.qq.com/s/E2_f8u1qJcvkbF7Lcv9mNQ    

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RTOS滴答Tick设置多少才合适 的相关文章

  • 各种 RTOS 对比

    商业解读 RTOS种类是否开源是否免费厂家官网uclinux 并入linux mainline 是是linux基金会linux orgucosII是是Micriumweston embeddeducosIII是是Micriumweston
  • RTOS任务调度过程(上下文切换)

    RTOS任务调度过程 xff08 上下文切换 xff09 解析 xff1a RTOS任务调度的机制是基于内核异常机制的 xff0c 即每产生一次调度就会产生一次内核异常 xff0c 那么 xff0c 要了解RTOS的任务调度机制需要先明白内
  • 通过Linux学习RTOS

    通过Linux学习RTOS 原文 xff1a http blog csdn net zoomdy article details 50549901 mingdu zheng at gmail dot com RTOS应用很广 xff0c 种
  • RTOS与linux区别

    一句话解释 xff1a linux是分时系统 xff0c 不过可以通过配置内核改成实时 嵌入式Linux 系统是在原来Linux的发行版本之上进行了优化和改进的 xff0c 用于嵌入式的移动终端等设备的嵌入式Linux系统现在基本上都是实时
  • CCS v6.1下完成TI-RTOS配置

    TI RTOS 是实时操作系统的TI微控制器 TI RTOS实现更快的发展不再需要开发人员编写和维护的系统软件 xff0c 如调度程序 xff0c 协议栈和驱动程序 它结合了实时多任务内核与其他中间件组件 xff0c 包括TCP IP和US
  • HW-RTOS 概述

    文章目录 1 背景介绍1 1 OS 实时难题1 2 Linux 实时补丁1 3 Xenomai 43 Linux 双内核1 4 HW RTOS1 5 More 2 优化点1 xff1a API2 1 原理介绍2 1 1 Software A
  • RTOS之Freertos的操作系统原理

    任务调度机制的实现 任务调度机制是嵌入式实时操作系统的一个重要概念 xff0c 也是其核心技术 对于可剥夺型内核 xff0c 优先级高的任务一旦就绪就能剥夺优先级较低任务的CPU使用权 xff0c 提高了系统的实时响应能力 FreeRTOS
  • STM32使用RTOS BootLoader跳转app进入异常中断问题

    一 问题描述 在boot中不使用RTOS xff0c 跳转到APP中 xff0c APP可以正常运行 但是boot中使用RTOS跳转到APP中 xff0c 程序配置完时钟后就会进入MemManage Handler错误中断 二 解决方法 1
  • 玩RTOS这么久,一问原子操作,蒙了~

    已剪辑自 https mp weixin qq com s kvxcOHT xHtMAjQqJu7Y2g 外链图片转存失败 源站可能有防盗链机制 建议将图片保存下来直接上传 img C3f9Rrei 1668695258073 https
  • 基于RTOS的软件开发理论

    文章目录 1 RTOS的特点2 任务设计2 1 任务的特性2 2 任务划分的方法2 2 1 设备依赖性任务2 2 2 关键任务2 2 3 紧迫任务2 2 4 数据处理任务2 2 5 触发条件相同的任务2 2 6 运行周期相同的任务2 2 7
  • Matlab adjust axis tick labels, limits, and tick locations

    From https cn mathworks com matlabcentral answers 92565 how do i control axis tick labels limits and axes tick locations
  • 什么是RTOS?RTOS与普通操作系统的区别

    一 xff1a 什么是RTOS RTOS Real Time Operating System xff0c 实时操作系统 实时性是其最大特征 xff0c 实时操作系统中都要包含一个实时任务调度器 xff0c 这个任务调度器与其它操作系统的最
  • 内核7-线程间同步

    目录 1 信号量 1 1 信号量机制 1 2 信号量的使用场合 1 2 1 线程同步 1 2 2 锁 1 2 3 中断与线程的同步 1 2 4 资源计数 1 3 信号量控制块 1 4 函数 1 4 1 rt sem init 函数 1 4
  • RT-Thread记录(八、理解 RT-Thread 内存管理)

    RT Thread内核的我们已经基本都学习过了 除了基本的线程操作和通信 内核部分还有内存管理和中断处理 本文主要就来说说内存管理相关问题 目录 前言 一 为什么要内存管理 二 RT Thread 内存堆管理 2 1 RT Thread 内
  • OSAL

    OSAL为 Operating System Abstraction Layer 即操作系统抽象层 支持多任务运行 它并不是一个传统意义上的操作系统 但是实现了部分类似操作系统的功能 OSAL概念是由TI公司在ZIGBEE协议栈引入 他的意
  • 小米在建IoT护城河Vela NuttX

    MIDC 2020小米开发者大会刚刚过去 整场大会下来 几个印象比较深刻的点是 雷军宣布扩招5000名工程师 最新伸缩式大光圈镜头技术 小爱同学5 0发布 当然了 还有一个更加值得被提及的重点是 首次亮相的Xiaomi Vela物联网软件平
  • FreeRTOS 配置TICK_RATE_HZ

    我使用的是带有 5 4 版 FreeRTOS 的 MSP430f5438 我有一个有趣的问题 我无法弄清楚 基本上 当我将 configTICK RATE HZ 设置为不同的值时 LED 闪烁得更快或更慢 它应该保持相同的速率 我将 con
  • RT-Thread 内核基础(六)

    RT Thread内核配置示例 RT Thread的一个重要特性是高度可裁剪性 支持对内核进行精细调整 对组件进行灵活拆卸 配置主要是通过修改工程目录下的rtconfig h文件来进行 用户可以通过打开 关闭该文件中的宏定义来对代码进行条件
  • 小型 ARM 微控制器的 RTOS 内核之间的可量化差异 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 有许多不同的 RTOS 可用于微控制器 我专门寻找支持 ARM Cortex M 处理器的 RTOS 另外 我对闭源解决方案不感兴趣 试图从网站
  • 开始使用 Real Time Linux 编程的最佳方式是什么?

    虽然我用C实现了很多项目 但我对操作系统完全陌生 我在 Discovery board STM32 上尝试了实时 Linux 并得到了闪烁 LED 的正确结果 但我并没有真正理解整个过程 因为我只是按照步骤操作 并且无法在互联网上找到每个步

随机推荐