FreeRTOS任务优先级

FreeRTOS中,用户通过configMAX_PRIORITIES配置最高优先级,实际任务优先级范围是0到configMAX_PRIORITIES–1。任务优先级数值越小,优先级越低,空闲任务优先级为0。中断任务应设置为最高优先级,高优先级后台任务如按键检测、USB消息处理等次之,低优先级任务如界面显示可设置多个优先级,但需确保非实时性。中断优先级始终高于任务,且中断优先级数值小表示优先级高。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 任务优先级说明

  • FreeRTOS中任务的最高优先级是通过FreeRTOSConfig.h文件中的configMAX_PRIORITIES进行配置的,用户实际可以使用的优先级范围是0到configMAX_PRIORITIES – 1,建议用户配置宏定义configMAX_PRIORITIES的最大值不要超过32。
  • 用户配置任务的优先级数值越小,那么此任务的优先级越低,空闲任务的优先级是0

2. 任务优先级分配方案

在这里插入图片描述

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

3. 中断优先级和任务优先级区别

中断的优先级永远高于任何任务的优先级,即任务在执行的过程中,中断来了就开始执行中断服务程序。
区别:中断优先级的数值越小,优先级越高;任务优先级数值越小,任务优先级越低。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值