当前位置: 首页 > article >正文

STM32H750之FreeRTOS学习--------(一)初识RTOS

FreeRTOS

一、初识RTOS

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

  1. 实时性差,程序轮流执行
  2. delayCPU空等待,效率低
  3. 程序混乱,臃肿,功能都放在while循环

image-20231027211824152

RTOS:Real Time OS,就是实时操作系统

  1. 分而治之,实现功能划分为多个任务
  2. 延时函数,delay后进行任务调度
  3. 抢占式,高优先级任务抢占低优先级任务
  4. 任务堆栈,每个任务都有自己的栈空间
  • 中断可以打断任务,中断优先级由硬件决定
  • 任务优先级人为设置,可以设置同一优先级
  • 任务之间可以相互打断

image-20231027212256043

任务调度

  • 抢占式调度

优先执行任务优先级高的任务

  • 时间片调度

任务优先级相同时,任务调度器会每隔一个固定的周期切换CPU正在执行的任务

  • 协程式调度

高优先级无法抢占低优先级任务

任务的四种状态

image-20231027212756285

  • 任务除了运行态外,每种状态都有自己的任务状态列表
    1. 就绪列表 pxReadyTasksLists[x]
    2. 阻塞列表 pxDelayedTaskList
    3. 挂起列表 xSuspendedTaskList
  • x代表任务优先级的数值

image-20231027213023717
相同优先级的任务会连接在同一个就绪列表上


http://www.kler.cn/a/109117.html

相关文章:

  • 网络安全技术在能源领域的应用
  • Linux入门:环境变量与进程地址空间
  • 【Pikachu】越权访问实战
  • 使用Git工具在GitHub的仓库中上传文件夹(超详细)
  • 类型转换指令及方法调用与返回指令
  • 图书管理系统(Java实现)
  • Go 小知识之 Go 中如何使用 set
  • OPNET <<< Program Abort >>> Standard function stack imbalance
  • 自动化项目实战 [个人博客系统]
  • 论坛介绍 | COSCon'23 开源文化(GL)
  • 算法笔记【6】-简单选择排序算法
  • 关于使用ScriptObject作为项目数据配置
  • 私有云:【11】win10安装Agent客户端组件
  • 【Linux】环境变量
  • GoLong的学习之路(十一)语法之标准库 fmt.Printf的使用
  • JDK、JRE及JVM的关系及作用
  • web:[网鼎杯 2020 青龙组]AreUSerialz
  • 第44天:前端及html、Http协议
  • ChinaSoft 论坛巡礼 | 智慧化 IDE 论坛
  • day37(事件轮询机制 ajaxGet执行步骤与案例(五个步骤) ajax属性 PHP返回JSON对象(两种))
  • 08 MIT线性代数-求解Ax=b:可解性与结构Complete Solution of Ax=b
  • 设计模式——装饰器模式(Decorator Pattern)+ Spring相关源码
  • el-table多选表格 实现默认选中 删除选中列表取消勾选等联动效果
  • 292_C++_建立流连接,创建多个线程执行I\O异步操作
  • 搭建MyBatis
  • volatile 系列之如何解决可见性问题