建议参考uCOS的user manual,里面有详细的说明所有的scheduling points
A task signals or sends a message to another task;
A task calls OSTimeDly() or OSTimeDlyHMSM();
A task waits for an event to occur and the event has not yet occurred;
If a task aborts a pend;
If a task is created;
If a task is deleted;
If a kernel object is deleted;
A task changes the priority of itself or another task;
A task suspends itself by calling OSTaskSuspend();
A task resumes another task that was suspended by OSTaskSuspend();
At the end of all nested ISRs;
The scheduler is unlocked by calling OSSchedUnlock();
A task gives up its time quanta by calling OSSchedRoundRobinYield();
The user calls OSSched();