FreeRTOSConfig配置项(持续完善)

  • configMAX_PRIORITIES:定义优先级范围,0~(configMAX_PRIORITIES – 1),数值越高,优先级越高。这点跟stm32中断优先级相反。
  • configCPU_CLOCK_HZ:标识系统时钟频率,修改它不会使硬件时钟频率变化,需要与实际硬件时钟频率保持一致。
  • configTICK_RATE_HZ:设置Tick频率,如设置1000,则周期为1ms。开启系统滴答定时器,每隔一个Tick周期中断一次,于中断函数中处理一些事情,比如交替任务的执行。
  • configUSE_IDLE_HOOK:置1启用空闲任务的钩子函数,钩子函数可自行编写。空闲任务是由任务调度器自动创建的优先级为0的任务。只有空闲任务执行的时候,钩子函数才会被执行。
  • configUSE_PREEMPTION:置1启用任务抢占,即优先级高的任务可以中断正在运行的低优先级任务,转而运行自己。若置0关闭任务抢占,则除非低优先级任务进入阻塞(Blocked)或暂停(suspended),不然任何优先级的任务都不能抢占执行。
  • configUSE_TIME_SLICING:同优先级任务是否轮流执行。置1则同优先级任务周期交替执行,周期为1个Tick周期,置1时必须启用抢占,即configUSE_PREEMPTION置1。置0则除非当前任务阻塞(Blocked)、暂停(suspended)或被高优先级任务抢占(需要启用抢占),不然将一直运行注:此时空闲任务无法执行)。

启用任务抢占关闭轮流执行的情况下,如有A、B两个同级低级任务和一个C高优先级任务,A、B、C均死循环,C死循环内有定时阻塞。则运行现象为:C先运行,阻塞后接着A运行,C定时阻塞结束后抢占运行,阻塞后B运行……

即低优先级任务每次被打断即交替一次。若A、B均0优先级,则空闲任务也有机会执行

  • configIDLE_SHOULD_YIELD:空闲任务礼让用户任务开关。若置0关闭,则同级任务执行周期相等。若置1开启,则空闲任务在一次循环执行(包括钩子函数)后触发任务调度,切换任务。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值