前面说了tIsr以及tExcTask函数,这两个任务都是关于中断的,这里说的tJobTask是正常任务,跟中断没有关系。实现的就是简单的把一个函数延后执行。
/*记录job的结构体*/
typedef struct
{
FUNCPTR func; /* job function */
int arg [JOB_MAX_ARGS]; /* args for function */
int clientTid; /* client task Id */
int clientPrio; /* client task Priority */
int * pResult; /* pointer to job result, supplied by client */
#ifdef _WRS_CONFIG_SMP
cpuset_t affinity;
#endif
} TASK_LEVEL_JOB;
/*job队列*/
LOCAL TASK_LEVEL_JOB workerJob;
初始化过程:
usrRoot--->usrIosExtraInit--->jobLibInit
/*初始化*/
STATUS jobLibInit
(
int jobTaskStackSize /* job task stack size */
)
{
/*初始化clientMutex信号量*/
if (semMInit (&clientMutex, (SEM_Q_PRIOR