FreeRTOS 系统内核控制函数

news2024/11/20 6:33:07

FreeRTOS 中有一些函数只供系统内核使用,用户应用程序一般不允许使用,这些 API 函数就是系统内核控制函数。

内核控制函数

顾名思义,内核控制函数就是 FreeRTOS 内核所使用的函数,一般情况下应用层程序不使用这些函数,在 FreeRTOS 官网可以找到这些函数,如下图所示:
在这里插入图片描述
在这里插入图片描述

1、函数 taskYIELD()
此函数用于进行任务切换,此函数本质上是一个宏

2、函数 taskENTER_CRITICAL()
进入临界区,用于任务函数中,本质上是一个宏

3、函数 taskEXIT_CRITICAL()
退出临界区,用于任务函数中,本质上是一个宏

4、函数 taskENTER_CRITICAL_FROM_ISR()
进入临界区,用于中断服务函数中,此函数本质上是一个宏

5、函数 taskEXIT_CRITICAL_FROM_ISR()
退出临界区,用于中断服务函数中,此函数本质上是一个宏

6、函数 taskDISABLE_INTERRUPTS()
关闭可屏蔽的中断,此函数本质上是一个宏

7、函数 taskENABLE_INTERRUPTS()
打开可屏蔽的中断,此函数本质上是一个宏

8、函数 vTaskStartScheduler()
启动任务调度器

9、函数 vTaskEndScheduler()
关闭任务调度器

10、函数 vTaskSuspendAll()
挂起任务调度器,调用此函数不需要关闭可屏蔽中断即可挂起任务调度器

11、函数 xTaskResumeAll()
此函数用于将任务调度器从挂起壮态恢复

12、函数 vTaskStepTick()
此函数在使用FreeRTOS的低功耗 tickless模式的时候会用到,即宏
configUSE_TICKLESS_IDLE 为 1。当使能低功耗 tickless 模式以后在执行空闲任务的时候系统时钟节拍中断就会停止运行,系统时钟中断停止运行的这段时间必须得补上,这个工作就是由函数 vTaskStepTick()来完成的

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

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

相关文章

6基于二阶锥规划的主动配电网最优潮流求解

matlab代码:基于二阶锥规划的主动配电网最优潮流求解 参考文献:主动配电网多源协同运行优化研究_乔珊 摘要:最优潮流研究在配 电网规划运行 中不可或缺 , 且在大量分布式能源接入 的主动配 电网环境下尤 为重要 。传统的启发式算…

设计师一定要知道这5个免费样机素材网

本期推荐5个设计师必备的样机素材网站,免费下载,建议收藏~ 1、菜鸟图库 https://www.sucai999.com/searchlist/3217----all-0-1.html?vNTYxMjky 网站有多种类型的设计素材,像平面、电商、UI、办公等素材这里面都能找到。样机素材分类清晰&…

GitHub“疯狂”求阿里内部开源这份10W字Java面试手册,竟遭拒绝

行业风向标,猎聘发布的数据报告显示: 相比以往,2023年企业招聘两大变化体现在:对人才各方面能力要求更高、对人岗的匹配性要求更细。不同规模的企业用人各有侧重,大中型企业更注重人的全面能力,小型企业更…

我写系列博客的缘由

我写系列博客的缘由 每个经历不是一帆风顺的人,都将深刻地体会到,少走弯路对一个人来说是多么重要。人的生存不是浪漫的幻想,而是建立在能立足于现实社会上,教育的真正意义,是培养你的认识水平、提升智慧,借…

JAVA语言-比较器Comparator

目录 一、什么是Comparator 二、Java compare方法和compareTo方法 三、java中Comparable和Comparator的区别 Comparator的例子 一、什么是Comparator Comparator 是javase中的接口,位于java.util包下。 数组工具类和集合工具类中提供的工具方法sort方法都给出…

Vector - CAPL - CAN x 总线信息获取

在CAN&CANFD测试中,我们经常需要获取到CAN总线的负载、错误帧、过载帧、发送错误等等CAN总线上面的信息,这些信息如此重要,但是如果真的要写代码去实现也是相当不易的,那我们该如何去获取到的呢?下面我们就来一起看…

系统集成作业——公司网络系统集成设计,总公司、分公司地跨两个不同城市。

一 实验需求 完成公司网络系统集成设计(2000台电脑),总公司、分公司地跨两个不同城市 二实验分析 本次实验继续建立在实验三的基础之上,对其升级改造为地跨不同城市的总公司和分公司的大型局域网网建设。 实验三配置点击链接&…

经营软件公司五年,从外包到SaaS的踩坑笔记

文章目录摘要开公司的两个误区关于管理关于合作关于SaaS其他经验大和强是两码事。大不是目的,强才是。小步试错、慢慢迭代不要掉入流量陷阱摘要 经营公司已有五年,经历了三年的疫情停滞,现在正在转型为一家SaaS公司。虽然曾经迷茫过&#xf…

包装类,String,String的方法

针对八种基本数据类型相应的引用类型-----包装类。有了类的特点,就可以调用类中的方法 基本数据类型包装类booleanBoolean char CharacterbyteByteshortShortintIntegerlongLongfloatFloatdoubleDouble Byte---Double类的父类是Number 关系图 拆箱,装箱 …

如何微调Segment Anything Model

文章目录什么是SAM?什么是模型微调?为什么要微调模型?如何微调 Segment Anything 模型背景与架构创建自定义数据集输入数据预处理训练设置循环训练保存检查点并从中启动模型下游应用程序的微调随着 Meta 上周发布的 Segment Anything Model (…

DAY 33 shell编程 常用的文本命令

sort命令####排序 sort将文件的每一行作为一个单位相互比较,比较原则是从首字符向后依次按ASCII码进行比较,最后将它们按升序输出。(以行为单位来排序输出) sort [选项] 参数​cat file | sort 选项常用选项: 常用选…

计算机综合题汇总

(数学计算题) 把6个相同的球分到三个不同的学生身上,允许有的学生没有球,请问有多少种不同的方法? C(8,2)=28。 典型的插板问题,直接套公式,C(n+m-1,m-1)。6个球,本身5个空,有同学可以不分,再加3个空,共8个空;插入2个板。 (软件选择题) 软件质量保证是什么? A. 确保…

超外差收音机的制作-电子线路课程设计-实验课

超外差收音机的制作 一、原理部分: 超外差收音机:超外差式收音机是将接收到的不同频率的高频信号全部变成一个固定的中频信号进行放大,因而电路对各种电台信号的放大量基本是相同的,这样可以使中放电路具有优良的频率特性。 超…

Adobe考证

在数字化时代,Adobe软件已成为许多人工作和创造的必备工具。为了证明自己在使用Adobe软件方面的专业能力,许多人选择参加Adobe认证考试并获取Adobe认证证书。 本文将从以下几个方面介绍Adobe考证的相关内容...... 什么是Adobe认证考试? Ado…

我的面试八股(JAVA并发)

重点AQS以及几种锁的底层需要补充!!!!! 程序计数器为什么是线程私有的? 程序计数器主要有下面两个作用: 字节码解释器通过改变程序计数器来依次读取指令,从而实现代码的流程控制&#xff0c…

VS Code配置C/C++开发环境

一、VS Code安装C/C++插件 二、配置MinGW 进入下载页面mingw-w64,找到winlibs-x86_64-mcf-seh-gcc-13.0.1-snapshot20230402-mingw-w64ucrt-11.0.0-r1.7z,点击下载。将文件放到自己想要放置的盘符下面,然后解压,将里面的mingw64目录剪切到最外层。 拷贝目录,将目录添加到…

【静态Web架构】静态站点生成器概述 Gatsby ,Hugo 和Jekyll对比

在本文中,您将看到三种最好的静态站点生成器的比较,它们的优点、缺点以及您应该使用它们的原因。网站统治着网络,无论是静态的还是动态的。虽然现在很多网站都是动态的,但是静态的仍然很受欢迎。事实上,静态网站的使用…

高频丙类谐振功率放大器【Multisim】【高频电子线路】

目录 一、实验目的与要求 二、实验仪器 三、实验内容与测试结果 1、观察输入、输出波形 2、观察不同工作状态下的集电极电流波形 3、测试负载特性 4、测试集电极调制特性 四、实验结果分析 五、参考资料 一、实验目的与要求 1、通过实验加深理解高频谐振功率放大器电路…

R -- 层次聚类和划分聚类

brief 聚类分析是一种数据归约技术,旨在揭漏一个数据集中观测值的子类。子类内部之间相似度最高,子类之间差异性最大。至于这个相似度是一个个性化的定义了,所以有很多聚类方法。 最常用的聚类方法包括层次聚类和划分聚类。 层次聚类&#…

vscode连接linux

vscode连接linux第一步:下载扩展第二步:打开左侧的那个类似小电脑的选项第三步:点击那个螺丝按钮第四步:选第一个第五步:配置config文件第六步:打开设置第七步:在搜索栏搜索:Always reveal the SSH login terminal第八步:重启vscode第八步:输入密码后,点击右上角号旁边的"…