FreeRTOS-任务查询及延时函数

FreeRTOS-任务查询及延时函数

  • 下面是一些FreeRTOS任务状态查询及运行时间统计的API函数
uxTaskPriorityGet();			//获取任务优先级
vTaskPrioritySet();				//设置任务优先级
uxTaskGetNumberOfTasks();		//获取系统中任务的数量
uxTaskGetSystemState();			//获取所有任务状态信息
vTaskGetInfo();					//获取指定单个的任务信息
xTaskGetCurrentTaskHandle();	//获取当前任务的任务句柄
xTaskGetHandle();				//根据任务名获取该任务的任务句柄
uxTaskGetStackHighWaterMark();	//获取任务的任务栈历史剩余最小值
eTaskGetState();				//获取任务状态
vTaskList();					//以表格形式获取所有任务的信息
vTaskGetRunTimeStats();			//获取任务的运行时间
  • 获取任务优先级
#define INCLUDE_uxTaskPriorityGet		1//宏置1
UBaseType_t uxTaskPriorityGet(const TaskHandle_t xTask);			//获取任务优先级  形参:任务句柄 NULL表示自身	返回值:整数 任务优先级数值
  • 设置任务优先级
#define INCLUDE_vTaskPrioritySet		1//宏置1
void vTaskPrioritySet(TaskHandle_t xTask,UBaseType_t uxNewPriority);			//设置任务优先级  形参:任务句柄 NULL表示自身	 需要设置的任务优先级
  • 获取系统任务数量
UBaseType_t uxTaskGetNumberOfTasks();		//获取系统中任务的数量
//返回值 系统中任务的的数量
  • 获取所有任务信息
UBaseType_t uxTaskGetSystemState(TaskStatus_t* const pxTaskStatusArray,const UBaseType_t uxArraySize,configRUN_TIME_COUNTER_TYPE*const pulTotalRunTime);			//获取所有任务状态信息
//形参:指向TaskStatus_t结构体数组首地址  接收信息的数组大小  系统运行总时间
//返回值:获取信息的任务数量
  • 获取单个任务的状态信息
#define configUSE_TRACE_FACILITY		1//宏置1
void vTaskGetInfo(TaskHandle_t xTask,TaskStatus_t* pxTaskStatus,BaseType_t	xGetFreeStackSpace,eTaskState eState);					//获取指定单个的任务信息
//形参:指定获取信息的任务句柄	接收任务信息的变量		任务栈历史剩余最小值		任务状态
  • 获取当前任务的任务句柄
#define INCLUDE_xTaskGetCurrentTaskHandle  1//宏置1
TaskHandle_t xTaskGetCurrentTaskHandle()//获取当前任务句柄
//返回值:当前任务句柄
  • 根据任务名获取该任务的任务句柄
#define INCLUDE_xTaskGetHandle  1//宏置1
TaskHandle_t xTaskGetHandle(const char* pcNameToQuery);				//根据任务名获取该任务的任务句柄
//形参:任务名  返回值:任务句柄
  • 获取任务的任务栈历史剩余最小值
  • 当你获取到剩余最小值很小时,说明快要溢出,需要加大
#define INCLUDE_uxTaskGetStackHighWaterMark  1//宏置1
UBaseType_t uxTaskGetStackHighWaterMark(TaskHandle_t xTask);	//获取任务的任务栈历史剩余最小值
//形参:任务句柄		返回值:任务栈的历史剩余最小值
  • 获取任务运行状态
  • 任务状态:0表示运行态
#define INCLUDE_eTaskGetState		1//宏置1
eTaskState eTaskGetState(TaskHandle_t xTask)//获取任务运行状态
//形参:任务句柄		返回值:任务状态
  • 以表格形式获取任务状态信息
  • 主要获取的内容有:Name(任务名)、State(任务状态信息BRSD)、Priority(任务优先级)、Stack(堆栈历史最小剩余大小)、Num(任务编号)
#define configUSE_TRACE_FACILITY 1;
#define config_STATS_FORMATTING_FUNCTIONS	1;//宏置1
void vTaskList(char* pcWriteBuffer);					//以表格形式获取所有任务的信息
//形参:接收任务的缓存指针
  • 统计任务运行时间
  • 会获取到任务的Task(任务名称)、Abs Time(任务实际运行的总时间)、%Time(占总时间的百分比)
#define configGENERATE_RUN_TIME_STAT 1;
#define portCONFIGURE_TIMER_FOR_RUNTIME_STATE()		function;//初始化时基定时器,其精度需要高于系统时钟节拍的10-100倍
#define portGET_RUN_TIME_COUNTER_VALUE()		function//用于获取该功能时基硬件定时器计数的计数值
#define configUSE_STATS_FORMATTING_FUNCTIONS 1;//宏置1
void vTaskGetRunTimeStats(char* pcWriteBuffer);			//获取任务的运行时间
//形参:缓存指针
  • 在FreeRTOS中存在两个延时函数
vTaskDelay();//相对延时:每次延时都是从执行函数vTaskDelay()开始,进入阻塞态,直到延时指定的时间结束
xTaskDelayUntil();//绝对延时:将整个任务的运行周期看成一个整体,适用于需要按照一定比例频率运行的任务

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

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

相关文章

人工智能与自然语言处理发展史

前言 在科技的浪潮中,人工智能 (AI) 作为一股不可阻挡的力量,持续推动着社会与科技的进步。本博客旨在深入剖析人工智能及其核心领域——神经网络、自然语言处理、统计语言模型、以及大规模语言模型——的演进历程,以专业的视角展现这一领域…

基于C语言开发(控制台)通讯录管理程序

通讯录程序设计 一、课程设计题目与要求 题目 :通讯录管理程序 1. 问题描述 编写一个简单的通讯录管理程序。通讯录记录有姓名,地址(省、市(县)、街道),电话号码,邮政编码等四项。2. 基本要求 程序应提供的基本基本管理功能有…

豆包 MarsCode 代码练习体验

我最近体验了豆包MarsCode的代码练习,感觉非常棒!首先,进入平台后,界面简洁明了,使用起来非常方便。选择内置题目时,题目类型丰富多样,涵盖了基础知识和一些进阶挑战,非常适合不同水…

【Kubernetes知识点】解读HPA的 thrashing(抖动)问题

【Kubernetes知识点】解读HPA的 thrashing(抖动)问题 目录 1 概念 1.1 什么是 Thrashing 现象?1.2 HPA 中 Thrashing 产生的原因1.3 解决 Thrashing 的优化措施 1.3.1 设置合适的阈值1.3.2 使用自定义指标和基于负载的自动扩缩1.3.3 增加扩…

探寻大模型时代智慧农业新未来,商汤与上海市农委达成战略合作

近日,在中国农民丰收节上海会场丰收庆典活动上,商汤科技与上海市农业农村委员会(下称:上海市农委)签署战略合作协议,双方将依托先进的AI大模型技术,共同推进上海智慧农业发展,打造国…

基向量和投影矩阵

文章目录 1. 投影向量2. 基向量,列向量秩1分解3. SVD,奇异向量秩1分解4. 小结:5. 图解分析 1. 投影向量 假设我们有一个向量b和一个向量q,求向量b在向量q上的投影向量p: 求向量p的长度: q T b ∣ q ∣ ⋅ ∣ b ∣ ⋅ cos ⁡ …

UNet 眼底血管分割实战教程

✨ Blog’s 主页: 白乐天_ξ( ✿>◡❛) 🌈 个人Motto:他强任他强,清风拂山冈! 💫 欢迎来到我的学习笔记! 在医学影像分析领域,准确地分割眼底血管对于眼科疾病的诊断和治疗至关重要。…

[产品管理-33]:实验室技术与商业化产品的距离,实验室技术在商业化过程中要越过多少道“坎”?

目录 一、实验室技术 1.1 实验室研究性技术 1.2 技术发展的S曲线 技术发展S曲线的主要阶段和特点 技术发展S曲线的意义和应用 二、实验室技术商业化的路径 2.1 实验室技术与商业化产品的距离 1、技术成熟度与稳定性 - 技术自身 2、市场需求与适应性 - 技术是满足需求 …

关于yolov5训练需要更改的参数汇总

首先我给大家展示一下项目目录 第一步我们需要修改data文件夹下的voc.yaml文件,这里我复制了一份改名为hat.yaml 需要修改第21,22行的路径,train是图片的训练集,val是图片训练的验证集,nc是标签的数量,name…

解决银河麒麟桌面操作系统V10SP1 SSH连接“connection reset by ip地址 port 22”问题

解决银河麒麟桌面操作系统V10SP1 SSH连接“connection reset by ip地址 port 22”问题 💖The Begin💖点点关注,收藏不迷路💖 遇到SSH连接银河麒麟V10SP1时“connection reset by ip地址 port 22”的错误,可以尝试以下步…

深入浅出热门AI大模型,新手到专家的必备指南《实战AI大模型》

今天,人工智能技术的快速发展和广泛应用已经引起了大众的关注和兴趣,它不仅成为技术发展的核心驱动力,更是推动着社会生活的全方位变革。特别是作为AI重要分支的深度学习,通过不断刷新的表现力已引领并定义了一场科技革命。大型深…

矿区车辆4G视频监控解决方案

一、背景介绍 随着科技的发展和矿山产业的不断进步,矿区的安全问题越来越受到关注。尤其是矿区车辆的运行安全,更是重中之重。为了更好地对矿区车辆进行监控和管理,提高运行安全性,4G视频监控解决方案应运而生。 二、需求分析 1…

Nmap网络扫描器基础功能介绍

怎么快速知道网络中存在哪些设备呢?我们可以借用扫描工具Nmap来实现这个功能。 下载 Windows系统可以前往Nmap官网下载安装包。 Linux使用对应的包管理器可以直接安装,命令如下 # Debian/Ubuntu apt install nmap# RedHat/Fedora yum install nmap …

全西安前十的数字媒体产业链都在这

在古城西安,有一处汇聚着创新与活力的地方,那便是西安国际数字影像产业园。这里,承载着西安数字媒体产业的未来与希望,成为了数字媒体产业链的闪耀聚集地。 西安国际数字影像产业园以其独特的魅力和优势,吸引了众多数字…

Go语言基础学习01-Liunx下Go开发环境配置;源码组织方式;go build/install/get详解

目录 Linux环境下配置安装VScode并配置Go语言开发环境Go语言源码的组织方式Go语言源码安装后的结果Go程序构建和安装的过程go build扩展go get 命令详解 之前学习过Go语言,学习的时候没有记录笔记,最近找了个极客时间的Go语言36讲,打算时间学…

004_动手实现MLP(pytorch)

import torch from torch import nn from torch.nn import init import numpy as np import sys import d2lzh_pytorch as d2l # 1.数据预处理 mnist_train torchvision.datasets.FashionMNIST(root/Users/w/PycharmProjects/DeepLearning_with_LiMu/datasets/FashionMnist, t…

二刷LeetCode:“51.N皇后 37.解数独”题解心得(简单易懂)

引言(初遇噩梦,再遇坦然) 在阅读本文之前,建议大家已经接触过回溯算法,并完成回溯相关题目,例如:子集问题、组合问题、排列问题。 子集:子集II、子集 组合:组合、组合总和…

多比特AI事业部VP程伟光受邀为第四届中国项目经理大会演讲嘉宾

全国项目经理专业人士年度盛会 武汉市多比特信息科技有限公司AI事业部VP程伟光先生受邀为PMO评论主办的全国项目经理专业人士年度盛会——2024第四届中国项目经理大会演讲嘉宾,演讲议题为“AI对于项目经理工作的影响和变化解析”。大会将于10月26-27日在北京举办&am…

Scanner流程控制语句

1. Scanner类 Scanner的意思是扫描 Scanner是JDK提供的一个类,位于java.util包下,所以我们如果需要使用则必须导包,导包的语句必须在声明包之后,在声明类之前 Scanner类是用来接受用户输入的各种信息 Scanner类提供了用于接受…

SpringBoot开发——整合Hutool工具类轻松生成验证码

文章目录 1、Hutool简介2、验证码效果展示2.1 扭曲干扰验证码2.2 线条干扰验证码2.3 圆圈干扰验证码3、验证码应用场景3.1. 用户注册与身份验证3.2. 支付验证3.3. 订单与物流通知3.4. 信息安全与隐私保护3.5. 通知与提醒3.6. 其他应用场景4、Hutool工具类实现验证码生成4.1 引入…