1297_FreeRTOS中的idle task实现分析

全部学习汇总: GitHub - GreyZhang/g_FreeRTOS: learning notes about FreeRTOS.

这一次来看一下idle task的实现。在很多RTOS中都有idle task,作用估计也是差不多。操作系统在启动的时候必须要至少有一个任务存在,而为此做保障的就是idle task。而idle task通常也会将自己的保障兵的角色发挥到极致,很多不重要的信息都是通过idle task的钩子函数来实现。

这里顺便把这个宏定义的信息一起放在这里了,而这个宏的展开效果其实就是定义一个Task。第一段代码上面的注释中也有其对等的形式。

这个循环体的这部分信息中,有效的其实就是一个函数调用,也就是3662行的函数调用。

进一步看被调用的函数,其实是根据任务自我删除更新的状态任务链表来做收尾工作的处理。这个收尾之后,任务才算是完成最终的删除以及清理工作。操作的最后一步是销毁每一个自我删除的任务的TCB信息,也就是完成内存的回收工作。

抢占模式下,如果配置了 configIDLE_SHOULD_YIELD 有效,那么只要有与idle task相同优先级的任务就绪,idle task检测到的时候就会发起任务切换请求。

如果配置了idle task的钩子函数,将会在这里调用。

剩余的这部分在我现在的工程配置中无效,暂且不去分析,后面用到的时候再分析。这样,整个idle task的实现基本就分析完了,所做的工作其实还是很简单的。一个是内存的收集,另一个是看看任务调度的需求执行相应的切换请求,再者是钩子函数。当然,还有一个目前没有分析的无 tick模式。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值