FreeRTOS学习 -- 任务 API 函数

函数 uxTaskPriorityGet()

此函数用来查询指定任务的优先级,要使用此函数的话宏 INCLUDE_uxTaskPriorityGet 应该定义为 1。

函数 vTaskPrioritySet()

此函数用于改变某一个任务的任务优先级,要 使 用 此 函 数 的 话 宏
INCLUDE_vTaskPrioritySet 应该定义为 1。

函数uxTaskGetSystemState()

此函数用于获取系统重所有任务的任务状态,每个任务的壮态信息保存在一个 TaskStatus_t类型的结构体里面,这个结构体里面包含了任务的任务句柄、任务名字、堆栈、优先级等信息,要使用此函数的话宏 configUSE_TRACE_FACILITY 应该定义为 1。

函数 vTaskGetInfo()

此寒素也用来获取任务状态信息,但是是获取指定的单个任务的状态的,任务状态信息填充到参数 pxTaskStatus 中, 这个参数也是 TaskStatus_t 类型的。
要使用此函数的话宏 configUSE_TRACE_FACILITY 要定义为 1。

函数 xTaskGetApplicationTaskTag()

此函数用于获取任务的 Tag(标签)值,任务控制块中有个成员变量 pxTaskTag 来保存任务的标签值。标签的功能由用户自行决定,此函数就是用来获取这个标签值的, FreeRTOS 系统内核是不会使用这个标签的。
要使用此函数的话宏 configUSE_APPLICATION_TASK_TAG 必须为 1。

函数 xTaskGetCurrentTaskHandle()

此函数用于获取当前任务的任务句柄。如果要使用此函数的话宏 INCLUDE_xTaskGetCurrentTaskHandle 应该为 1。

函数 xTaskGetHandle()

此函数根据任务名字获取任务的任务句柄,在使用函数 xTaskCreate()或 xTaskCreateStatic()创建任务的时候都会给任务分配一个任务名,函数 xTaskGetHandle()就是使用这个任务名字来查询其对应的任务句柄的。要使用此函数的话宏 INCLUDE_xTaskGetHandle 应该设置为 1。

函数 xTaskGetIdleTaskHandle()

此函数用于返回空闲任务的任务句柄。
要使用此函数的话宏 INCLUDE_xTaskGetIdleTaskHandle 必须为 1。

函数 uxTaskGetStackHighWaterMark() (重要)

每个任务都有自己的堆栈,堆栈的总大小在创建任务的时候就确定了。
此函数用于检查任务从创建好到现在的历史剩余最小值,这个值越小说明任务堆栈溢出的可能性就越大。FreeRTOS 把这个历史剩余最小值叫做“高水位线”。
此函数相对来说会多耗费一点时间,所以在代码调试阶段可以使用,产品发布的时候最好不要使用。要使用此函数的话宏 INCLUDE_uxTaskGetStackHighWaterMark 必须为 1。

函数 eTaskGetState()

此函数用于查询某个任务的运行状态,比如:运行态、阻塞态、挂起态、就绪态,返回值是个枚举类型。
要使用此函数的话宏 INCLUDE_eTaskGetState 必须为 1。

函数 pcTaskGetName()

根据某个任务的任务句柄来查询这个任务对应的任务名。

函数 xTaskGetTickCount()

此函数用于查询任务调度器从启动到现在时间计数器 xTickCount 的值。
xTickCount 是系统的时钟节拍值,并不是真实的时间值。每个滴答定时器中断 xTickCount 就会加 1,一秒钟滴答定时器中断多少次取决于宏 configTICK_RATE_HZ。

函数 xTaskGetTickCountFromISR()

此函数是 xTaskGetTickCount()的中断级版本,用于在中断服务函数中获取时间计数器 xTickCount 的值。

函数 xTaskGetSchedulerState()

此函数用于获取 FreeRTOS 的任务 调度器运行情况:运行、关闭、还是挂起。
要使用此函数的话宏 INCLUDE_xTaskGetSchedulerState 必须为 1。

函数 uxTaskGetNumberOfTasks()

此函数用于查询系统当前存在的任务数量。

函数 vTaskList()

此函数会创建一个表格来描述每个任务的详细信息。

函数 vTaskGetRunTimeStats() (重要)

FreeRTOS 可以通过相关的配置来统计任务的运行时间信息,任务的运行时间信息提供了每个任务获取到 CPU 使用权总的时间。

要 使 用 此 函 数 的 话 宏 configGENERATE_RUN_TIME_STATS 和configUSE_STATS_FORMATTING_FUNCTIONS 必须都为 1。

如果宏 configGENERATE_RUN_TIME_STATS 为 1 的话还需要实现一下几个宏定义:
●portCONFIGURE_TIMER_FOR_RUN_TIME_STATS(),此宏用来初始化一个外设来提供时间统计功能所需的时基,一般是定时器/计数器。这个时基的分辨率一定要比 FreeRTOS的系统时钟高,一般这个时基的时钟精度比系统时钟的高 10~20 倍就可以了。
●portGET_RUN_TIME_COUNTER_VALUE()或者
portALT_GET_RUN_TIME_COUNTER_VALUE(Time),这两个宏实现其中一个就行了,这两个宏用于提供当前的时基的时间值。

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

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

相关文章

一维数组操作(GOC常考类型)答案

第1题 宇航局招聘 时限:1s 空间:256m 宇航局准备招收一批科研人员从事月球探索的航空科研工作。这个职位来了很多应聘者,宇航局对众多应聘者进行综合素质考试,最终会选出x名综合得分排名靠前应聘者。目前考试已经结束了&a…

Golang | Leetcode Golang题解之第102题二叉树的层序遍历

题目&#xff1a; 题解&#xff1a; func levelOrder(root *TreeNode) [][]int {ret : [][]int{}if root nil {return ret}q : []*TreeNode{root}for i : 0; len(q) > 0; i {ret append(ret, []int{})p : []*TreeNode{}for j : 0; j < len(q); j {node : q[j]ret[i] …

Java面试精粹:高级问题与解答集锦(一)

Java 面试问题及答案 1. 什么是Java的垃圾回收机制&#xff0c;它如何工作&#xff1f; 答案&#xff1a; Java的垃圾回收机制是一种自动内存管理功能&#xff0c;用于回收不再被应用程序使用的对象所占用的内存。它通过垃圾收集器&#xff08;Garbage Collector&#xff0c;…

js数据类型显隐式转换

在JavaScript中&#xff0c;数据类型的转换可以分为两种主要类型&#xff1a;显式类型转换&#xff08;Explicit Type Conversion&#xff09;和隐式类型转换&#xff08;Implicit Type Conversion 或 Type Coercion&#xff09;。 显式类型转换&#xff08;Explicit Type Con…

React18+TypeScript搭建通用中后台项目实战02 整合 antd 和 axios

配置路径别名 tsconfig.json {"compilerOptions": {"target": "ES2020","useDefineForClassFields": true,"lib": ["ES2020","DOM","DOM.Iterable"],"module": "ESNext&quo…

磁盘分区和挂载

磁盘分区和挂载 一、磁盘 业务层面&#xff1a;满足一定的需求所是做的特定操作 硬盘是什么以及硬盘的作用 硬盘&#xff1a;计算器的存储设备&#xff0c;一个或者多个磁性的盘片做成&#xff0c;可以在盘片上进行数据的读写 连接方式&#xff1a;内部设备&#xff0c;外…

深度揭秘:蓝海创意云渲染农场的五大特色功能

在当今数字化时代&#xff0c;影视制作、效果图设计等领域对于高质量的渲染需求日益增长。在这个背景下&#xff0c;云渲染平台成为了行业中不可或缺的一部分&#xff0c;它为用户提供了高效、灵活的渲染解决方案。蓝海创意云渲染农场https://www.vsochina.com/cn/render蓝海创…

软件需求分析和软件原型开发是一会事情吗?

软件需求分析和软件原型开发是软件开发过程中的两个重要环节&#xff0c;它们各自承担着不同的任务&#xff0c;但又紧密相连&#xff0c;共同影响着软件项目的成功。下面将详细解释这两个环节的定义、目的以及它们之间的关系。 一、软件需求分析 定义&#xff1a;软件需求分析…

C++学习日记 | LAB 6 static library 静态库

资料来源&#xff1a;南科大 余仕琪 C/C Program Design LINK&#xff1a;CPP/week06 at main ShiqiYu/CPP GitHub 一、本节内容 本节主要介绍静态库和动态库。 1.1 静态库和动态库的概念 静态链接和静态库(也称为存档)是链接器将所有使用的库函数复制到可执行文件的结果。静…

Javascript中的定时器有哪些?他们的区别及用法是什么?

JavaScript 中有几种常用的定时器函数,它们的区别主要在于执行方式和行为: setTimeout(callback, delay):作用:在指定的延迟时间后执行回调函数一次。用法:通常用于延迟执行某些操作。返回值:一个定时器 ID,可用于取消定时器。setInterval(callback, delay):作用:每隔指定的延…

Linux中 “权限设置修改”

目录 一、权限 &#xff08;1&#xff09;权限三大类&#xff1a; &#xff08;2&#xff09;文件的权限&#xff1a; &#xff08;3&#xff09;目录的权限&#xff1a; &#xff08;4&#xff09;用户的角色&#xff1a; 二、文件的权限位 三、修改用户权限 &#xf…

【flutter 双端开发】

flutter 双端开发 开发小细节替换新的logo 开发小细节 替换新的logo 替换双端logo 寻找三方插件 android 打包流程 android 打包流程2

小程序唯品会Authorization sign

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;wx a15018601872 本文章未…

Python---Matplotlib(2万字总结)【从入门到掌握】

数据可视化 在完成了对数据的透视之后&#xff0c;可以将数据透视的结果通过可视化的方式呈现出来&#xff0c;简单的说&#xff0c;就是将数据变成漂亮的图表&#xff0c;因为人类对颜色和形状会更加敏感&#xff0c;然后再进一步解读数据背后隐藏的价值。在之前的文章中已经…

nacos安装与使用

1.nacos简介与安装 什么是注册中心&#xff08;服务治理&#xff09; 服务注册&#xff1a;服务提供者provider&#xff0c;启动的时候向注册中心上报自己的网络信息 服务发现&#xff1a;服务消费者consumer&#xff0c;启动的时候向注册中心上报自己的网络信息&#xff0c;拉…

JavaScript style 样式属性操作

JavaScript 中可以使用 style 对象来操作元素的样式属性。style 对象是元素的一个属性&#xff0c;通过它可以访问和修改元素的内联样式属性。 要访问元素的样式属性&#xff0c;可以使用以下语法&#xff1a; element.style.property 其中&#xff0c;element 是要操作的元…

centos7防火墙入站白名单配置

firewall-cmd --set-default-zonedropfirewall-cmd --get-active-zone记录下当前激活网卡firewall-cmd --permanent --change-interfaceens33 --zonedrop firewall-cmd --zonedrop --list-all 添加信任的源IP和开放端口 firewall-cmd --permanent --add-source192.168.254.1 -…

【OpenCV】图形绘制与填充

介绍了绘制、填充图像的API。也介绍了RNG类用来生成随机数。相关API&#xff1a; line() rectangle() circle() ellipse() putText() 代码&#xff1a; #include "iostream" #include "opencv2/opencv.hpp"using namespace std; using namespace cv…

ARM64的KASLR分析

基本概念 加载地址&#xff1a;内核解压到物理内存上的物理起始地址 链接地址&#xff1a;内核编译链接后的虚拟起始地址 我们的这篇 文章&#xff0c;介绍了加载地址可以是自动的&#xff0c;也可以是固定的&#xff1b;一般都是物理内存的起始地址 一个偏移 &#xff1b;…

pillow学习3

Pillow库中&#xff0c;图像的模式代表了图像的颜色空间。以下是一些常见的图像模式及其含义&#xff1a; L&#xff08;灰度图&#xff09;&#xff1a;L模式表示图像是灰度图像&#xff0c;每个像素用8位表示&#xff08;范围为0-255&#xff09;&#xff0c;0表示黑色&#…