rtos主要面对的问题有三个方面:1.任务管理

2.任务调度器
3.任务切换
任务管理主要需要管理任务状态以及任务列表的管理,一下是几个元素:
1.tcb
任务控制块:1.栈顶(从数组最后一位开始压栈)2.任务节点
3.栈起始地址
/>
2.任务就绪列表,是一个数组,每一个数组的下标表示当前的任务优先级,优先级相同的任务插入相同的任务就绪列表中的数组元素。
/>
/>
如何理解tcb和任务就绪列表的关系?我们只需要知道tcb是用来切换任务的,只需要回答如何在就绪列表中找到tcb这个问题即可。
首先tcb中的xstateklist会在
prvInitialiseNewTask()
list_list_item_owner函数添加归属的tcb
/>
接着插入到指定的就绪列表中,调用的时候只需要遍历list中从响应的xstatelistitem中获取owner(tcb)即可
2.任务调度器
1.初始化调度器,一般是将当前tcb指向最高任务优先级tcb(最小数组序号最小),一般是在插入优先级就绪列表的时候边插入边更新。


