FreeRTOS学习记录——持续更新

news2024/9/23 3:32:46

目录

入门知识:

裸机与FreeRTOS:

裸机:

RTOS系统:

基础知识:

任务调度:

分类:

时间片调度:

任务状态(四种):

四种状态图片:


入门知识:

裸机与FreeRTOS:

裸机:

又称前后台系统,前台系统指的中断服务函数,后台系统指的大循环,即应程序

RTOS系统:

全称为:Real Time OS,就是实时操作系统,强调的是:实时性

堆栈:存放断点的数据,以便继续执行 

(1)中断是可以打断任意任务的

(2)任务可以同等优先级

最后一点:软件优先级是没有任何限制的,硬件优先级是有限制的,如stm32为32位,硬件优先级为0到31(ISR中断请求寄存器位数)

基础知识:

任务调度:

使用相关调度算法来决定当前需要执行的哪个任务

分类:

  1. 抢占式调度(Preemptive Scheduling)
    • 这是FreeRTOS默认的调度方式。在这种方式下,调度器始终运行优先级最高且可运行的RTOS任务。如果某个更高优先级的任务变为就绪状态(例如,由于等待的事件发生或延时结束),则当前运行的任务将被抢占,高优先级任务将立即获得CPU控制权并开始执行。这种调度方式确保了系统对紧急任务的快速响应。

1.数值越大优先级就越高

2.高优先级任务不停止,低优先级任务就无法执行

3.被抢占的任务将会进入就储态

  1. 协作式调度(Cooperative Scheduling)
    • 协作式调度不是FreeRTOS的默认调度方式,但在某些情况下可以使用。在这种方式下,一旦一个任务开始执行,它将持续运行,直到它主动放弃CPU控制权(例如,通过调用特定的函数如taskYIELD()vTaskDelay(),或者进入阻塞状态等待事件或资源)。协作式调度简化了任务间共享资源的管理,但要求每个任务都必须定期放弃CPU控制权,否则可能导致系统响应性能下降。
  2. 时间片轮转调度(Round-Robin Scheduling)
    • 对于具有相同优先级的任务,FreeRTOS采用时间片轮转调度。这意味着这些任务将轮流获得CPU时间片,每个时间片结束后,任务将被挂起,下一个同优先级的任务将获得执行机会。时间片的大小可以通过配置FreeRTOS的tick中断频率和调度器的时间片长度来设置。

时间片调度:

        同等优先级任务轮流地享有相同CPU时间(可设置),叫时间片,在FreeRTOS中,一个时间片就等于SysTick中断周期

        在FreeRTOS中,时间片调度(Time-Slicing)是一种用于管理具有相同优先级的任务执行顺序的机制。当多个任务具有相同的优先级时,它们会轮流获得CPU的使用权,每个任务执行一个预设的时间片长度后,就会让出CPU给下一个同优先级的任务,以此循环。这种调度方式有助于确保系统公平地分配CPU资源给所有同优先级的任务。

时间片调度的关键要素

  1. 时间片长度
    • 时间片长度是指一个任务在不被抢占或中断的情况下能够连续执行的最长时间。在FreeRTOS中,时间片长度通常与系统的时钟节拍(Tick Rate)相关,一个时间片就等于一个SysTick中断周期。
    • 时间片长度可以通过配置FreeRTOS的configTICK_RATE_HZ宏来设置。例如,如果configTICK_RATE_HZ被设置为1000,那么每个时间片的长度就是1毫秒(ms)。
  2. 任务优先级
    • 在FreeRTOS中,任务可以具有不同的优先级。时间片调度主要适用于具有相同优先级的任务。
    • 当存在多个同优先级的任务时,它们会按照时间片轮转的方式获得CPU使用权。
  3. 抢占式调度与合作式调度的结合
    • FreeRTOS支持抢占式调度和合作式调度。在时间片调度中,抢占式调度仍然有效,即如果更高优先级的任务变为就绪状态,它会立即抢占当前正在执行的任务的CPU使用权。
    • 而在同优先级的任务之间,则采用时间片轮转的方式进行调度。

1.同等优先级任务,轮流执行:时间片流转

2.一个时间片大小,取决为滴答定时器中断周期

3.注意没有用完时间片不会再使用,下次任务Task3得到执行还是按照一个时间片的时钟节拍运行

任务状态(四种):

  1. 运行状态(Running)
    • 当任务正在占用CPU资源并实际执行时,该任务处于运行状态。在单核处理器系统中,同一时间只能有一个任务处于运行状态。
    • 运行状态的任务可以因为各种原因(如时间片结束、更高优先级任务就绪、任务主动让出CPU等)而转换为其他状态。
  2. 就绪状态(Ready)
    • 任务已经准备好执行,但因为某些原因(如当前CPU正在被其他任务占用或更高优先级的任务正在运行)而暂时未获得CPU使用权。
    • 就绪状态的任务会排入相应的就绪列表中,等待调度器根据优先级或时间片策略进行调度。
    • 当任务从阻塞状态或挂起状态恢复时,也会进入就绪状态。
  3. 阻塞状态(Blocked)
    • 任务因等待某个事件(如信号量、消息队列、延时等)而无法继续执行时,会进入阻塞状态。
    • 阻塞状态的任务会排入相应的阻塞列表中,直到等待的事件发生或超时后才会被唤醒并转换为就绪状态。
    • 阻塞是任务调度中常见的一种状态转换,用于实现任务间的同步和通信。
  4. 挂起状态(Suspended)
    • 任务被明确挂起后,将不再参与调度,即不会获得CPU使用权。
    • 挂起状态的任务需要通过特定的恢复函数(如vTaskResume())来唤醒并重新加入就绪列表。
    • 挂起状态通常用于临时停止任务执行,以便进行调试、更新或重新配置等操作

四种状态图片:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2122354.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AV1 Bitstream Decoding Process Specification:术语和定义

原文地址:https://aomediacodec.github.io/av1-spec/av1-spec.pdf没有梯子的下载地址:AV1 Bitstream & Decoding Process Specification摘要:这份文档定义了开放媒体联盟(Alliance for Open Media)AV1视频编解码器…

上海市皮肤病医院引入AcrelEMS-MED平台打造绿色医院

在数字化转型的浪潮中,上海市皮肤病医院再次走在前列,宣布对其能源管理系统进行全面升级,引入AcrelEMS-MED医院能源管理平台,以科技力量推动绿色医院建设,为患者和医护人员打造更加安全、高效、环保的就医与工作环境。…

2024.9.9(极客大挑战 2019]EasySQL,[极客大挑战 2019]Knife)

题目一:极客大挑战 2019]EasySQL 1、点开题目链接,来到下面的界面 2、遇到这样的登录界面,先尝试admin和万能密码(1 or 11#),拿到flag 题目二:[极客大挑战 2019]Knife 1、点开链接&#xff0c…

【C++】模板:进阶(仿函数深度剖析)

目录 一.仿函数的概念 二.仿函数的作用 三.模板的非类型模板参数 四.array 五.模板的特化 六.函数模板 七.类模板 1.全特化 2.偏特化 八.模板分离编译 一.仿函数的概念 仿函数本质就是一个类,此类中重载了运算() ,因此它使用起来就和函数很像&a…

新160个crackme - 053-devilz KeyGen me#3

运行分析 解压出来4个文件运行程序发现要破解Name和Serial PE分析 32位,petite壳 手动脱壳 使用windows XP虚拟机OD打开程序按2下F8,发现ESP变红,根据ESP定律,在该地址右键 -> HW break下断点 继续按2下F9,来到灰色…

从0到1:中小企业如何用内容营销吸引客户,塑造品牌魅力?

今天咱们来聊聊中小企业如何通过内容营销这把“金钥匙”,打开客户的心门,同时塑造出独特的品牌魅力。别紧张,这其实就是一场精彩的交流盛宴,让我们一起探索其中的奥秘吧! 一、内容营销:真诚对话的开始 想象…

OAuth 2.0 授权流程详解与 FastAPI 实现

在现代网络应用中,OAuth 2.0 已成为授权和认证的标准协议。它允许用户将访问权限授予第三方应用,而无需暴露自己的用户名和密码。本文将详细介绍 OAuth 2.0 的常见授权流程,并展示如何在 FastAPI 中实现这些流程。 OAuth 2.0 简介 OAuth 2…

数字化转型不是终点,数字技术服务平台如何陪伴企业持续进化?

数字化转型确实不是终点,而是一个持续的过程,它要求企业不断适应变化、优化流程、创新业务模式。数字技术服务平台在陪伴企业持续进化方面扮演着至关重要的角色,具体体现在以下几个方面: 灵活性与可扩展性:数字技术服…

误删文件后的数据救赎实战恢复指南

误删文件的痛与思 在数字化时代,数据已成为我们生活与工作中不可或缺的一部分。无论是个人用户保存的家庭照片、工作文档,还是企业用户存储的财务数据、客户资料,都承载着无法估量的价值。然而,误删文件这一简单却致命的操作&…

【数组与广义表】(基本概念与思路)

1.数组的定义及特点 数组:按一定格式排列起来的,具有相同类型的数据元素的集合。 1.1一维数组 若线性表中的数据元素为非结构的简单元素,则称为一维数组。一维数组的逻辑结构:线性结构,定长的线性表声明格式:数据类型 变量名称…

仪表板展示丨DataEase看中国:中国月饼行业消费趋势报告

中秋节是中国最重要的传统节日之一,月饼是具有浓厚节日特色的传统美食。近年来,月饼市场呈现出诸多新趋势和消费特点。在本文中,我们使用DataEase开源BI工具(http://github.com/dataease)对中国月饼行业的消费趋势进行…

敏捷开发方法例题

答案:B 敏捷方法 特点 极限编程XP 4大价值观,5大原则,12个最佳实践 水晶法 认为每一个不同的项目都需要一套不同的策略,约定和方法论,认为人对软件质量有重要影响,因此随着项目质量和开发人员须知的提…

洛谷 P7391 「TOCO Round 1」自适应 PVZ

原题链接t 题目来源于:洛谷 题目本质:贪心,排序,平衡树 题目思路:把僵尸出现时刻和走进房子时刻想成左端点和右端点,按照右端点从小到大排序。第二对于同样可以使用的豌豆射手,我们一定选择上…

在 HKCR 新增项和值

; 1. Win11 HKCR 根键默认是 System 所有, Win10 HKCR 根键默认是 Administrators 所有。 ; 2. 以 System、管理员 还是 普通用户 登录系统? ; 在注册表里,操作 HKCR 行为与以上两项无关,都统一如下: ; 项 查权限所有者 当…

QT5实现https的post请求(QNetworkAccessManager、QNetworkRequest和QNetworkReply)

QT5实现https的post请求 前言一、一定要有sslErrors处理1、问题经过2、代码示例 二、要利用抓包工具1、问题经过2、wireshark的使用3、利用wireshark查看服务器地址4、利用wireshark查看自己构建的请求报文 三、返回数据只能读一次1、问题描述2、部分代码 总结 前言 QNetworkA…

单片机-STM32 看门狗(八)

目录 一、看门狗概念 1、定义: 二、单片机中的看门狗 1、功能描述: 2、看门狗设置部分 预分频寄存器(IWDG_PR) 3、窗口看门狗 特性: 4、看门狗配置: 一、看门狗概念 看门狗--定时器(不属于基本定时器、通用定…

HTTP 协议和 APACHE 服务

WEB 服务基础 Internet 因特网 因特网是 Internet 的中文译名 在 20 世纪 60 年代(冷战时期),美国国防部高等研究计划署(ARPA)出于军事上的目的,建立了 ARPA 网络,该网络由四个分布在不同地方…

FreeRTOS基础入门——FreeRTOS互斥信号量(十六)

个人名片: 🎓作者简介:嵌入式领域优质创作者🌐个人主页:妄北y 📞个人QQ:2061314755 💌个人邮箱:[mailto:2061314755qq.com] 📱个人微信:Vir2025WB…

本地部署Llama 3.1大模型

Meta推出的Llama 3.1系列包括80亿、700亿、4050亿参数版本,上下文长度扩展至12.8万tokens,并增加了对八种语言的支持。 部署模型需要用到Ollama的一个工具,访问官方网站https://ollama.com 点击下载,选择下载你对应的操作系统下…

opencv图像透视处理

引言 在图像处理与计算机视觉领域,透视变换(Perspective Transformation)是一种重要的图像校正技术,它允许我们根据图像中已知的四个点(通常是矩形的四个角)和目标位置的四个点,将图像从一个视…