如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第六章uC/OS-II的任务调度3.调度过程:voidOSSched(void){#ifOS_CRITICAL_METHOD==3OS_CPU_SRcpu_sr;#endifINT8Uy;OS_ENTER_CRITICAL();if((OSLockNesting|OSIntNesting)==0){y=OSUnMapTbl[OSRdyGrp];OSPrioHighRdy//得到最高级优先任务=(INT8U)((y<<3)+UnMapTbl[OSRdyTbl[y]]);if(OSPrioHighRdy!=OSPrioCur){OSTCBHighRdy//得到任务控制块指针=OSTCBPrioTbl[OSPrioHighRdy];OSCtxSwCtr++;//统计任务切换次数的计数器加一OS_TASK_SW();}}OS_EXIT_CRITICAL();}§6.2调度器OSSched()的任务切换a.保存被终止任务断点b.保存CPU寄存器c.保存任务堆栈地址d.切换新任务TCBe.CPU获取私有堆栈地址f.切换CPU寄存器g.CPU获取断点指针3.任务前换函数实现§6.3调度时机