STM32用FreeRTOS时任务优先级和中断优先级说明

STM32⽤FreeRTOS时任务优先级和中断优先级说明下⾯对 FreeRTOS 优先级相关的⼏个重要知识点进⾏下说明,这些知识点在以后的使⽤中务必要掌握牢固。
FreeRTOS 中任务的最⾼优先级是通过 FreeRTOSConfig.h ⽂件中的 configMAX_PRIORITIES 进⾏
配置的,⽤户实际可以使⽤的优先级范围是 0 到 configMAX_PRIORITIES – 1。⽐如我们配置此宏定
义为 5,那么⽤户可以使⽤的优先级号是 0,1,2,3,4,不包含 5,对于这⼀点,初学者要特别的注意。
⽤户配置任务的优先级数值越⼩,那么此任务的优先级越低,空闲任务的优先级是 0。
建议⽤户配置宏定义 configMAX_PRIORITIES 的最⼤值不要超过 32,即⽤户任务可以使⽤的优先级
范围是0到31。因为对于CM内核的移植⽂件,⽤户任务的优先级不是⼤于等于32的话, portmacro.h
⽂件中的宏定义configUSE_PORT_OPTIMISED_TASK_SELECTION会优化优先级列表中要执⾏的最
⾼优先级任务的获取算法(对于 CM 内核的移植⽂件,此宏定义默认是使能的,当然,⽤户也可以在
800导航FreeRTOSConfig.h ⽂件中进⾏配置)。相⽐通⽤的最⾼优先级任务获取算法,这两种⽅式的对⽐如
橡胶闸阀下:
    通⽤⽅式,没有优化---配置宏定义 configUSE_PORT_OPTIMISED_TASK_SELECTION 为 0:
    所有平台的移植⽂件都可以配置为 0,因为这是通⽤⽅式。
    纯 C 编写,⽐专⽤⽅式效率低。
    可⽤的优先级数量不限制。
    专⽤⽅式,进⾏优化---配置宏定义 configUSE_PORT_OPTIMISED_TASK_SELECTION 为为 1:
    部分平台⽀持。
    这些平台架构有专⽤的汇编指令,⽐如 CLZ(Count Leading Zeros)指令,通过这些指令可以加速算法执⾏速度。
智能筷子
    ⽐通⽤⽅式⾼效。
    有最⼤优先级数限制,通常限制为 32 个。
如果⽤户在 FreeRTOSConfig.h ⽂件中配置宏定义 configUSE_TIME_SLICING 为 1,或者没有配置
当铺网此宏定义,时间⽚调度都是使能的。另外,只要芯⽚资源允许,可以配置任意多个同优先级任务。
(备注:没有定义 configUSE_TIME_SLICING,也能使⽤时间⽚调度是因为此宏定义默认已经在
FreeRTOS.h ⽂件中使能)
FreeRTOS 中处于运⾏状态的任务永远是当前能够运⾏的最⾼优先级任务。下⼀章节讲解调度器,⼤
家会对这个知识点有⼀个全⾯的认识。
线内钩子任务优先级分配⽅案
对于初学者,有时候会纠结任务优先级设置为多少合适,因为任务优先级设置多少是没有标准的。对
于这个问题,我们这⾥为⼤家推荐⼀个标准,任务优先级设置推荐⽅式如下图 13.1 所⽰:
IRQ 任务:IRQ 任务是指通过中断服务程序进⾏触发的任务,此类任务应该设置为所有任务⾥⾯优先级最⾼的。
⾼优先级后台任务:⽐如按键检测,触摸检测,USB 消息处理,串⼝消息处理等,都可以归为这⼀类任务。
低优先级的时间⽚调度任务:⽐如 emWin 的界⾯显⽰,LED 数码管的显⽰等不需要实时执⾏的都可以归为这⼀类任务。实际应⽤中⽤户不必拘泥于将这些任务都设置为优先级 1 的同优先级任务,可以设置多个优先级,只需注意这类任务不需要⾼实时性。
空闲任务:空闲任务是系统任务。
特别注意:IRQ 任务和⾼优先级任务必须设置为阻塞式(调⽤消息等待或者延迟等函数即可),只有
这样,⾼优先级任务才会释放 CPU 的使⽤权,,从⽽低优先级任务才有机会得到执⾏。
这⾥的优先级分配⽅案是我们推荐的⼀种⽅式,实际项⽬也可以不采⽤这种⽅法。调试出适合项⽬需求的才是最好的。
srvcc中断优先级和任务优先级区别
部分初学者也容易在这两个概念上⾯出现问题。简单的说,这两个之间没有任何关系,不管中断的优
先级是多少,中断的优先级永远⾼于任何任务的优先级,即任务在执⾏的过程中,中断来了就开始执⾏中
断服务程序。
另外对于 STM32F103,F407 和 F429 来说,中断优先级的数值越⼩,优先级越⾼。⽽ FreeRTOS
的任务优先级是,任务优先级数值越⼩,任务优先级越低。

本文发布于:2024-09-22 23:30:31,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/154945.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:任务   设置   中断   配置   定义   限制   检测   调度
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议