前面说了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_PRIORITY | SEM_DELETE_SAFE |
SEM_I

本文详细介绍了vxWorks操作系统中tJobTask的实现和使用,包括任务结构体定义、初始化过程、任务添加到队列的逻辑以及系统任务函数的工作原理。通过示例展示了如何安全地在任务队列中添加工作并执行指定函数。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



