1多任务系统:FreeRTOS就是一个多任务处理的操作系统,无操作系统的是单任务系统(即功能实现都在一个大while循环里)。
2任务调度器:多任务系统的核心,即把一个大循环while里的(或者说是一个大任务)分成若干个小任务,而什么时间执行什么任务的控制操作就是任务调度器
3任务与协程:单核系统(单片机是单核)任意时刻最多同时执行一个任务,打断执行其他任务回来原来的任务时需要从任务堆栈中得知原任务进程(上下文)。一个任务就是单独一个堆栈,而协程都共同用一个堆栈(为了节省单片机RAM资源)
4任务状态:运行态、就绪态、阻塞态、挂起态
5任务优先级:任务优先级非中断优先级,切换任务不等于执行中断。每个任务都有自己的任务优先级(最大有32个优先级,可设置),这是任务调度器管理任务时执行任务先后的标准。FreeRTOS可以允许多个任务同优先级(此时用时间片轮转调度器获取运行时间),而UCOS不允许。故此FreeRTOS可以管理多于32个任务比UCOS多。
6设置每个任务时,每个任务应有对应的任务函数,区别于普通调用函数,任务函数是创建该任务的前提。
7任务函数:函数的入口参数是viod指针类型。函数里可以调用其他功能函数,但不能被其他函数调用且一般是一个循环体不能跳出循环,要跳出循环必须跳出循环后删除任务。同时也不能返回函数,必须返回则会调用configASSERT(),但前提是定义了该函数。
8任务控制块:每个任务都有对应的,创建的时候会初始化。存储该任务的各种信息。
9任务堆栈:每个任务都有,用于保留现场,使任务中断执行后回来重新执行时找到上下文。
FreeRTOS任务管理详解

FreeRTOS是一个多任务操作系统,核心是任务调度器,它将任务分为多个小任务并控制执行顺序。任务有运行、就绪、阻塞和挂起四种状态,支持32个优先级。任务函数是任务执行的入口,不能被其他函数调用,必须保持循环运行。任务控制块存储任务信息,任务堆栈保存上下文。静态和动态创建任务的主要区别在于堆栈配置,删除任务后内存会被释放。
最低0.47元/天 解锁文章
2690

被折叠的 条评论
为什么被折叠?



