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

任务的状态

FreeRTOS中任务共存在4种状态

  • Running 运行态

当任务处于实际运行状态称之为运行态,即CPU的使用权被这个任务占用(同一个任务仅一个任务处于运行态)。

  • Ready 就绪态

处于就绪态的任务是指那些能够运行(没有被阻塞和挂起),但是当前没有运行的任务,因为同优先级或更高优先级的任务正在运行。

  • Blocked 阻塞态

如果一个任务因延时,或等待吸信号量、信息队列、事件标志组等而处于的状态被称之为阻塞态。

  • Suspended 挂起态

类似暂停,通过调用函数 vTaskSuspend() 对指定任务进行挂起,挂起后这个任务将不被执行,只有调用函数 xTasResume() 才可以将这个任务从挂起态恢复。

注意,运行态只有通过就绪态才能进入,其它状态都不能直接进入就绪态。

接下来实操一下

  • 判断句柄就可以知道该任务是否被创建
if(taskLED1Handle == NULL)
{osThreadDef(taskLED1, StartTaskLED1, osPriorityNormal, 0, 128);taskLED1Handle = osThreadCreate(osThread(taskLED1), NULL);
}//这里是如果队列没有被创建,则创建一个新的队列
  • 删除任务

在cubeMX有封装vTaskDelete的函数osThreadTerminate(),删除记得把句柄置零

osThreadTerminate(taskLED1Handle);
taskLed1Handle = NULL;
  • 挂起和恢复任务
osThreadSuspend(taskLED1Handle); //挂起任务
osThreadResume(taskLED1Handle);  //恢复任务


http://www.mrgr.cn/news/98656.html

相关文章:

  • 硬件电路设计之51单片机(2)
  • 2.一维卡尔曼滤波(动态模型)
  • leetcode 122. Best Time to Buy and Sell Stock II
  • LeetCode -- Flora -- edit 2025-04-16
  • 深度学习-卷积层(代码+理论)python opencv源码(史上最全)
  • idea中提高编译速度研究
  • ESP8266/32作为AVR编程器(ISP programmer)的使用介绍
  • 基于DS-TWR(双边双向测距)的平面定位MATLAB例程,包含模拟数据生成、距离计算和最小二乘定位(附完整代码,订阅专栏后可直接查看)
  • JWT 鉴权机制 通俗易懂解释版本
  • 投行风控和交易高可靠分布式锁核心要素与实现方案
  • SparseDrive---论文阅读
  • 从信号处理角度理解图像处理的滤波函数
  • [Python] UV工具入门使用指南——小试牛刀
  • Antd中使用Form.List且有Select组件,过滤问题
  • Linux 软件管理
  • Linux:解决 yum 官方源无法使用(CentOS 7)
  • 51c自动驾驶~合集17
  • 从单模态到多模态:五大模型架构演进与技术介绍
  • 使用 Azure AKS 保护 Kubernetes 部署的综合指南
  • Docker 中启动 Nginx 容器