FreeRTOS——任务管理
目录
- 一、FreeRTOS的任务管理
一、FreeRTOS的任务管理
任务的概念
FreeRTOS是一个支持多任务的实时操作系统,如之前裸机开发时采用的轮询系统而言,主程序是一个死循环,CPU按照死循环中的流程执行代码,而在多任务系统中,用户可以把整个系统分割为多个独立的且不能返回(死循环)的函数,这些函数就被称为任务。
应用程序中的任务都是由FreeRTOS的调度器进行调度,每个任务具有独立的栈空间,栈空间其实就是单片机中RAM的一段空间,通常可以提前定义一个全局数组,或者在创建任务的时候对任务的栈空间进行动态的分配,可以参考FreeRTOS的官方资料。
任务的状态
对于FreeRTOS中的任务而言,FreeRTOS的调度器会根据任务的状态决定运行哪个任务,任务的状态一共有四种:运行态、就绪态、挂起态、阻塞态。 可以参考FreeRTOS的官网资料。
任务优先级
FreeRTOS可以为每一个创建的任务分配一个优先级,当然也可以让多个任务使用相同的优先级。
任务的策略
任务的创建
启动调度器
当创建了多个任务,是需要FreeRTOS的调度器利用相关的调度策略对任务进行调度,如果不启动调度器,则任务是不会被执行。
任务的删除
任务的挂起
任务的恢复