FreeRTOS任务管理各过程算法总结

本文总结了FreeRTOS的任务管理,包括开启调度器、空闲任务的作用、任务创建与初始化、任务就绪表管理、任务删除与挂起、钩子函数的使用,以及任务恢复的流程。内容涵盖任务生命周期的关键步骤,对理解FreeRTOS任务调度有重要指导意义。
摘要由CSDN通过智能技术生成

1开启任务调度器:在此函数包括创建空闲任务(优先级最低),创建定时器服务任务(软件定时器,该步骤是条件编译可以用宏关闭)。然后会先关闭中断,在SVC中断服务函数中再重新打开。配置时间统计功能的定时器(条件编译,一般调试时才会用)。还包括其他硬件的初始化如滴答定时器、FPU单元、PendSV中断等等(这些有相关函数去调用实现或是寄存器直接配置)。

2空闲任务的意义:保证系统任何时刻都有一个任务进行,其次是处理一些琐事如有任务删除时在这空闲任务里执行其内存释放又如运行用户设置的空闲任务钩子函数又或者是在低功耗模式下执行其他处理。(空闲任务不需要手动创建)

3任务创建:首先申请任务堆栈内存再申请任务控制块内存,然后进行任务控制块的堆栈那部分内容初始化(注意不是所有信息都初始化),若控制块内存不足则创建失败并且释放之前申请的所有内存,否则标记该任务是动态创建的然后继续初始化任务的大部分信息并添加到就绪列表(静态和动态的删除任务等处理不一样因此要标记区分)。、

4任务初始化:任务创建过程剩下任务堆栈和任务控制块所有未初始化信息在此初始化,此外(注意,标记任务堆栈栈顶,任务数组名必须以’\0’结尾,该任务列表项的value值是关系任务的优先级,因为列表插入列表项顺序是升序的,即数字越大越后面,执行优先级越低)。

5任务就绪表:不同状态都由对应的一个列表,就

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值