RTOS
RTOS简介
与之对应的概念是裸机。RTOS全称Real Time OS 即实时操作系统。通常用于需要在严格时间限制内对外部事件做出反应的嵌入式系统,有多任务处理、调度、实时调度等功能。特点:分而治之、延时下放、抢占式、任务堆栈······
前置知识
基础知识
任务调度
方式
- 抢占式:高的抢占低的,高优先级阻塞时(比如delay函数)会把CPU控制权下放。
- 时间片:同等优先级有时钟节拍负责切换任务(一个时间片为SysTick中断周期)。没有用完的时间片(中间有阻塞会直接跳过,执行不到一个时间片)直接丢弃。
- 协程式调度:不被抢占(已经过时)
任务状态
- 运行态
- 就绪态
- 阻塞态:控制权下放给下级就绪态
- 挂起态:调用
vTaskSuspend()暂停,解除(vTaskResume())后回到就绪态。
* 任务状态列表
- 就绪列表:
pxReadyTasksLists[x],x代表优先级数目(32中为31,最低优先级保留给空闲任务)。同时有32位数值存储任务存在标志位。 - 阻塞列表:
pxDelayedTaskList - 挂起列表:
xSuspendedTaskList