• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

22.4.1-任务优先级相关 任务优先级与中断优先级 FreeRTOS 项目

02/13 08:42
883
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

联系方式.txt

共1个文件

这个是全网最详细的STM32项目教学视频。
第一篇在这里:
视频在这里


STM32智能小车V3-STM32入门教程-openmv与STM32循迹小车-stm32f103c8t6-电赛 嵌入式学习 PID控制算法 编码器电机 跟随

V3:HAL库开发、手把手教学下面功能:PID速度控制、PID循迹、PID跟随、遥控、避障、PID角度控制、openmv视觉控制、电磁循迹、FreeRTOS、K210视觉智能车(更新中)、K230视觉智能车(更新中)、MSPM0G3507视觉智能车(更新中)

在这里插入图片描述

22.4-任务优先级与中断优先级

前面我们创建任务的时候,需要设置任务的优先级,那么任务的优先级是什么意思? 和中断优先级有什么区别那?我们新建多个任务时候又应该如何确定任务的优先级那?

22.4.1-任务优先级相关

任务优先级概念(了解)

任务优先级决定了哪个任务先执行,哪个任务后执行。当系统中有多个任务需要运行时,FreeRTOS 会根据任务优先级来决定哪一个任务获得 CPU 时间片。

  • 高优先级任务 会抢占低优先级任务。
  • 每个任务可以设置一个优先级,优先级的值越大,任务的优先级越高。
任务优先级设置和最高优先级设置(了解)

任务优先级设置

任务优先级在每次新建任务可以在NewTask的Priority中设置优先级
在这里插入图片描述
如果自己写代码新建任务可以在 xTaskCreate 函数中的 uxPriority 参数设置的。

xTaskCreate(TaskFunction, "TaskName", STACK_SIZE, NULL, PRIORITY, NULL);

任务优先级的动态调整

FreeRTOS 提供了调整任务优先级的 API,如 vTaskPrioritySet(),可以动态改变任务的优先级。例如,某些情况下,任务的优先级可能需要在运行时进行调整。

vTaskPrioritySet(taskHandle, newPriority);//taskHandle:任务句柄、newPriority:新的要设置的优先级

任务最高优先级设置

FreeRTOS 的优先级是一个 无符号整数,通常是从 0(最低优先级)到 configMAX_PRIORITIES-1(最高优先级)。

configMAX_PRIORITIES 在STM32Cubemx中设置或者代码中设置(建议STM32Cbuemx设置然后生成代码)

一般不用设置太大够用就可以,比如设置5-7等
在这里插入图片描述

任务优先级分配分配方案!(重点掌握)

对于初学者,有时候会纠结任务优先级设置为多少合适,因为任务优先级设置多少是没有标准的。对于这个问题,这里为大家推荐一个标准,任务优先级设置推荐方式如下图:
在这里插入图片描述

  1. IRQ 任务:IRQ 任务是指通过中断服务程序进行触发的任务,此类任务应该设置为所有任务里面优先级最高的。比如中断触发的数据处理解析、中断触发的报警和急停等任务。
  2. 高优先级后台任务:比如按键检测,触摸检测,USB 消息处理,串口消息处理等,都可以归为这一类任务。
  3. 低优先级的时间片调度任务:比如 emWin 的界面显示,LED 数码管的显示等不需要实时执行的都可以归为这一类任务。实际应用中用户不必拘泥于将这些任务都设置为优先级 1 的同优先级任务,可以设置多个优先级,只需注意这类任务不需要高实时性。
  4. 空闲任务:空闲任务是系统任务。
  5. 特别注意:IRQ 任务和高优先级任务必须设置为阻塞式(调用消息等待或者延迟等函数即可),只有这样,高优先级任务才会释放 CPU 的使用权,,从而低优先级任务才有机会得到执行。
    这里可以增加后面所做任务优先级的计划,和为什么那么做?

这个是已经新增任务的优先级,默认任务和led任务设置正常优先级,OLED刷新任务设置低于正常优先级,这就是因为:OLED的刷新并不需要实时执行,所以设置低一些。
在这里插入图片描述
后面章节我们会新增一些任务这里写出对他们优先级的设置规划

最高优先级是电机停止任务,因为这个任务我们是等待按键中断的二值信号量的属于IRQ 任务(通过中断服务程序进行触发的任务)

其次是123456就是用来完成裸机时候的1和2和3和4和5和6模式的任务。

再然后是LED闪烁任务

最后是OLED刷新任务,OLED刷新和LED灯闪烁都是属于提示显示任务设置比较低的优先级就可以
在这里插入图片描述

 

  • 联系方式.txt
    下载
意法半导体

意法半导体

意法半导体(ST)集团于1987年6月成立,是由意大利的SGS微电子公司和法国Thomson半导体公司合并而成。1998年5月,SGS-THOMSON Microelectronics将公司名称改为意法半导体有限公司。意法半导体是世界最大的半导体公司之一,公司销售收入在半导体工业五大高速增长市场之间分布均衡(五大市场占2007年销售收入的百分比):通信(35%),消费(17%),计算机(16%),汽车(16%),工业(16%)。 据最新的工业统计数据,意法半导体是全球第五大半导体厂商,在很多市场居世界领先水平。例如,意法半导体是世界第一大专用模拟芯片和电源转换芯片制造商,世界第一大工业半导体和机顶盒芯片供应商,而且在分立器件、手机相机模块和车用集成电路领域居世界前列.

意法半导体(ST)集团于1987年6月成立,是由意大利的SGS微电子公司和法国Thomson半导体公司合并而成。1998年5月,SGS-THOMSON Microelectronics将公司名称改为意法半导体有限公司。意法半导体是世界最大的半导体公司之一,公司销售收入在半导体工业五大高速增长市场之间分布均衡(五大市场占2007年销售收入的百分比):通信(35%),消费(17%),计算机(16%),汽车(16%),工业(16%)。 据最新的工业统计数据,意法半导体是全球第五大半导体厂商,在很多市场居世界领先水平。例如,意法半导体是世界第一大专用模拟芯片和电源转换芯片制造商,世界第一大工业半导体和机顶盒芯片供应商,而且在分立器件、手机相机模块和车用集成电路领域居世界前列.收起

查看更多
点赞
收藏
评论
分享
加入交流群
举报

相关推荐

方案定制

去合作
方案开发定制化,2000+方案商即时响应!