一、什么叫裸机开发?
又称为前后台系统,前台的系统指的是中断服务函数,后台系统指的是while大循环。
二、Freertos基础知识:
一、什么是任务调度
二、什么是任务状态
2.1三种调度放方式:
1.抢占式调度:
2.时间片调度;(系统时钟节拍)
3.协程式调度。
2.1.1抢占式调度
2.1.2时间片调度
2.2 任务状态:
1.运行态; 正在执行的任务,同一时间仅有一个任务处于运行态
2.就绪态; 如果该任务已经能够被执行,但是当前的还未被执行
3.阻塞态; 如果一个任务延时或等待外部事件发生,那么这个任务处于阻塞态
4.挂起态。 类似暂停,调用函数 vTaskSuspend() 进入挂起态,需要调用解挂函数vTaskResume()才可以进入就绪态。
综上:
1.仅仅就绪态可以转变为运行态;
2.其他状态的任务想运行,必须先转变到就绪态。
举例
TASK2,TASK1什么时候能运行?就是当高优先级的TASK3进入阻塞态或者挂起态。
(有一个问题,就是什么进入TASK2的话什么时候结束呢?)
解答:TASK3阻塞时间到了,就会再次回复到就绪列表。这个时候就TASK3就进行抢占了,再次执行TASK3了。
所以调度器总是在处于就绪列表的任务中,选择具有最好优先级的任务进行执行。