1.总结任务调度算法之间的区别,重新实现一遍任务调度算法的代码。
1.1抢占式调度:高优先级的任务可以打断低优先级的任务
1.2时间片轮转:相同优先级的任务有相同的时间片(1ms),时间片耗尽退出任务,下次执行从退出的位置开始
1.3协作式调度:使用osDelay休眠函数来调度
2.总结静态创建任务和动态创建任务的区别,以及动态创建任务和静态创建任务的源码分析步骤。
静态创建任务适用于知道任务个数,不需要修改栈时,定义时需要给出栈的地址和大小,占用资源少但不灵活;
动态创建任务适用于不知道任务个数,栈需要添加减少时,定义只需给出栈的地址,占用资源较多但很灵活。
3.总结任务的状态,以及任务状态之间的转换关系。
任务共有四种状态:就绪态、运行态、阻塞态、挂起态。
挂起态:其余三态都可以通过vTaskSuspend函数进入挂起态
就绪态:运行态结束进入就绪态,阻塞结束进入就绪态
阻塞态:运行态中适用阻塞函数中止任务
运行态:调度器调度就绪任务运行