FreeRTOS实时操作系统(五)进入临界区、任务调度器挂起与恢复

news/2024/12/29 16:40:42/

系列文章目录


文章目录

  • 系列文章目录
  • 临界区代码保护
  • 任务调度器的挂起与恢复

临界区代码保护

临界区:是指那些必须要完整运行的,不能被打断的代码

适用于:
1.外设初始化
2.操作系统的代码有很多不能被打断
3.用户自己的需求

一般在中断、任务调度抢占会打断程序。但是在FreeRTOS中,因为任务抢占中断PendSV也在其5-15的优先级管理范围内,只要关闭中断后就完成无法进行任务的抢占和中断。

任务临界区:
进入:taskENTER_CRITICAL()
退出:taskEXIT_CRITICAL()

在这里插入图片描述

中断临界区:
进入:taskENTER_CRITICAL_FROM_ISR()
退出:taskEXIT_CRITICAL_FROM_ISR()
在这里插入图片描述

注意:可以嵌套使用,但是必须要保持临界区耗时短,且要成对

其实在内部是通过一个累计量来实现嵌套的,本质上还是对中断的屏蔽和打开:
在这里插入图片描述

任务调度器的挂起与恢复

对任务管理器的处理,不关闭中断,仅仅防止了任务之间的资源争夺,中断还是可以直接相应

挂起任务调度器:vTaskSuspendAll()
恢复任务调度器:xTaskResumeAll()

在这里插入图片描述
当我们的任务临界区比较长的时候,可能会产生延时中断,挂起任务调度器可以应用在任务内部的临界区,这样其他任务无法抢占,但是又能响应中断。

内部分析:
在其内部是利用PendSV中断来实现切换的。
在这里插入图片描述
挂起的主要内部函数是:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

恢复的主要流程是:

在这里插入图片描述
在这里插入图片描述


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

相关文章

笔记本usb外接3.5寸sata台式机硬盘, 用mhdd检测不到,怎么处理?

3.5寸sata台式机硬盘, 笔记本用mhdd检测不到,怎么处理? 通过USB 连接,用MHDD是检测不到,用MHDD必须接到IDE的接口上才能检测到。如果需要用USB接硬盘的话,Windows下用HDTUNE软件检测。 大神能接吗,通过接线,外置电源&…

旧笔记本的机械硬盘数据迁移到新笔记本的固态硬盘中 (磁盘复制,系统盘复制)

文章目录 1.下载一个分区助手必须是专业版才有(迁移系统功能)1.1 打开分区助手,点击新磁盘,接下来的操作将会对其生效。 2.迁移系统到固态硬盘向导2.1 迁移系统到固态硬盘“向导2.2 选择目标上的未分配空间,点击下一步…

彻底搞懂什么是阿里云服务器vCPU?

阿里云ECS服务器vCPU和CPU是什么意思?CPU和vCPU有什么区别?一台云服务器ECS实例的CPU选项由CPU物理核心数和每核线程数决定,CPU是中央处理器,一个CPU可以包含若干个物理核,通过超线程HT(Hyper-Threading&am…

2015款Mac笔记本安装Windows10系统到外置移动硬盘教程

终于把2015年的15寸Macbook Pro笔记本安装上了Windows10操作系统,并且是在外置的移动硬盘上安装的。运行的效果和用户体验也是非常棒。 之前网上购买了加密的视频,但是这个视频必须是windows系统,还不能是虚拟机里面的系统,所以花…

常见面试题之线程基础知识

1. 线程和进程的区别? 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理IO的。 当一…

蒸压加气混凝土砌块荷载系数1.4取值依据

蒸压加气混凝土砌块荷载系数1.4取值依据 计算依据: GB11968-2006《蒸压加气混凝土砌块》 CECS 289-2011 《蒸压加气混凝土砌块砌体结构技术规范 》 参考文献: [1]范瑜.结构设计中关于蒸压加气混凝土砌块墙的总结[J].建材发展导向,2018,16(16):41-…

混凝土静力受压弹性模量试验计算公式_简述混凝土静力受压弹性模量的试验步骤?...

简答题 简述混凝土静力受压弹性模量的试验步骤? 参考答案: ①检查压力机是否复核要求 ②检查微变形测量仪是否复核要求 ③将六个试件从养护地点取出,用毛巾擦干净试件表面,取三个试件先测定混凝土的轴心抗压强度,另三个…

混凝土静力受压弹性模量试验计算公式_混凝土试块得弹性模量的计算方法?

展开全部 E(Δ62616964757a686964616fe58685e5aeb931333431366238F*Le1)/(S0*Δ1) 其中: ΔF——应力 S0——混凝土试块承压面积 Δ1——应变 Le1——测量标距 1兆帕(MPa)145磅/英寸2(psi)10.2千克力/平方厘米(kgf/cm)10巴(bar)9.8大气压(atm) 1磅/英寸2(psi)0.006895兆帕(MPa)…