函数调用关系:(延时任务的clock减少的函数调用)
usrClock-->tickAnnounce-->windTickAnnounce-->Q_ADVANCEN
先说一下等待任务的时间片减少。
系统中有一个全局队列定义如下,就是专门存放等待任务的。
Q_HEAD tickQHead;
tickQHead队列的结构体定义:
typedef struct
{
Q_NODE *pFirstNode; /*第一个任务的节点*/
UINT qPriv1; /**/
UINT qPriv2; /**/
Q_CLASS *pQClass; /*每一类都对应一个操作函数集*/
} Q_HEAD;
每个类对应的操作函数集:
typedef struct q_class /* Q_CLASS */
{
FUNCPTR createRtn; /* create and initialize a queue */
FUNCPTR initRtn; /* initialize a queue */
FUNCPTR deleteRtn; /* delete and terminate a queue */
FUNCPTR terminateRtn; /* terminate a queue */
FUNCPTR putRtn; /* insert a node into q with insertion key */
FUNCPTR getRtn; /* return and remove