FreeRTOS----任务优先级
来源:互联网 发布:linux wc 编辑:程序博客网 时间:2024/06/06 17:54
xTaskCreate()API函数的uxPrddddiority参数为正在创建的任务分配初始优先级。 通过使用vTaskPrioritySet()API函数启动调度程序后,可以更改优先级。
可用的最大优先级数由FreeRTOSConfig.h中的应用程序定义的configMAX_PRIORITIES编译时配置常量设置。 低数字优先级值表示低优先级任务,优先级为0是可能的最低优先级。 因此,可用优先级的范围为0到(configMAX_PRIORITIES - 1)。 任何数量的任务可以共享相同的优先级 - 确保最大的设计灵活性。FreeRTOS调度程序可以使用两种方法之一来决定哪个任务处于运行状态。 可以设置configMAX_PRIORITIES的最大值取决于使用的方法:
1. 通用方法
通用方法在C中实现,可以与所有FreeRTOS架构端口一起使用。
当使用通用方法时,FreeRTOS不会限制可以设置configMAX_PRIORITIES的最大值。 然而,始终建议将configMAX_PRIORITIES值保持在必要的最小值,因为它的值越高,将消耗的RAM越多,并且最坏的执行时间将越长。
如果在FreeRTOSConfig.h中将configUSE_PORT_OPTIMISED_TASK_SELECTION设置为0,或者如果configUSE_PORT_OPTIMISED_TASK_SELECTION未定义,或者通用方法是为使用的FreeRTOS端口提供的唯一方法,则将使用通用方法。
2.架构优化方法
架构优化方法使用少量的汇编代码,并且比通用方法更快。 configMAX_PRIORITIES设置不会影响最坏的执行时间。
如果使用架构优化方法,那么configMAX_PRIORITIES不能大于32. 与通用方法一样,建议将configMAX_PRIORITIES保持在必要的最小值,因为它的值越高,RAM将被消耗越多。
如果在FreeRTOSConfig.h中configUSE_PORT_OPTIMISED_TASK_SELECTION设置为1,将使用体系结构优化方法。
不是所有的FreeRTOS端口都提供一种架构优化的方法。
FreeRTOS调度程序将始终确保能够运行的最高优先级任务是选择进入运行状态的任务。 如果具有相同优先级的多个任务能够运行,则调度程序将依次转换每个任务进出运行状态。
- FreeRTOS 任务优先级问题
- FreeRTOS----任务优先级
- FreeRTOS 任务优先级问题
- FreeRTOS任务优先级和中断优先级的区别
- freeRTOS 优先级设置 configMAX_SYSCALL_INTERRUPT_PRIORITY
- FreeRTOS任务相关API函数---查询/改变某个任务的优先级+获取全部/某个任务状态信息
- FreeRTOS任务切换解析
- FreeRTOS任务间通讯
- FreeRTOS任务切换解析
- FreeRTOS的任务管理
- FreeRTOS详解---任务管理
- FreeRTOS 任务通知
- HEXIWEAR---FreeRTOS之任务
- FreeRTOS---任务切换
- FreeRTOS中的任务状态
- FreeRTOS任务基础知识总结
- FreeRTOS任务创建
- FreeRTOS任务调度研究
- 把排序数组转换为高度最小的二叉搜索树-LintCode
- 年度总结
- 牛客网-幸运数
- 关注民生民情
- Java 中几个不常用的关键字
- FreeRTOS----任务优先级
- wordBreak-ii
- 常量对象、常量成员函数及其重载
- 移动零
- Spring集成RabbitMQ-使用RabbitMQ更方便
- AsyncTaskUtilsActivity
- Dialog System Using Real-Time Crowdsourcing and Twitter Large-Scale Corpus
- WARNING: terminal is not fully functional
- hihocoder:#1520 : 古老数字