FreeRTOS
一、初识RTOS
裸机:裸机又称为前后台系统,前台系统指的中断服务函数,后台系统指的大循环,即应用程序
- 实时性差,程序轮流执行
- delayCPU空等待,效率低
- 程序混乱,臃肿,功能都放在while循环
RTOS:Real Time OS,就是实时操作系统
- 分而治之,实现功能划分为多个任务
- 延时函数,delay后进行任务调度
- 抢占式,高优先级任务抢占低优先级任务
- 任务堆栈,每个任务都有自己的栈空间
- 中断可以打断任务,中断优先级由硬件决定
- 任务优先级人为设置,可以设置同一优先级
- 任务之间可以相互打断
任务调度
- 抢占式调度
优先执行任务优先级高的任务
- 时间片调度
任务优先级相同时,任务调度器会每隔一个固定的周期切换CPU正在执行的任务
- 协程式调度
高优先级无法抢占低优先级任务
任务的四种状态
- 任务除了运行态外,每种状态都有自己的任务状态列表
- 就绪列表 pxReadyTasksLists[x]
- 阻塞列表 pxDelayedTaskList
- 挂起列表 xSuspendedTaskList
- x代表任务优先级的数值
相同优先级的任务会连接在同一个就绪列表上