1、在多任务系统中,令CPU中止当前运行的任务转而去运行另一个任务的工作叫做任务切换,而按照某种规则进行任务切换的工作叫做任务的调度
2、在μC/OS-II中,任务调度是由任务调度器来完成的
3、任务调度器主要两项工作:①在任务就绪表中查找具有最高优先级别的就绪任务②中断级的调度器
4、任务级的调度器由函数OSSched()实现,中断级的调度器由函数OSIntExt()实现
5、调度器做任务切换的工作:①获得运行任务的TCB指针②进行断点数据的切换
6、调度器真正实施任务切换之前的主要工作是获得待运行任务的任务控制块指针和当前的任务控制块指针,μC/OS-II允许应用程序通过调用函数OSSchedLock()和OSSchedUnlock()给调度器上锁和解锁
7、调度器OSSched()在确认未被上锁并且不是中断服务程序调用调度器的情况下,首先从任务就绪表中查到最高优先级级别就绪任务的优先级别OSPrioHighRdy,然后再确认这个就绪任务不是当前正在运行的任务
8、调度器在任务切换前获得的两个指针OSTCBCar和OSTCBllighRdy
9、任务切换的工作是靠OSCtxSw()来完成的,任务切换就是中止正在运行的任务,转而去运行另一个任务的操作,当然,这个任务应该是就绪任务中优先级别最高的那个任务
10、一个任务保护断点时的压栈动作:
11、一个被中止的任务能否正确的在断点处恢复运行,关键在于能否正确地在CPU各寄存器中恢复断点数据;而能否正确的恢复断点数据的关键是<