对于VxWorks 的任务创建可以通过调用 taskSpawn()或是taskInit()/taskActivate()两种方式,以下就对这两种方式进行说明。
taskSpawn() 实现任务的创建分为两步:1、分配任务栈的空间,初始化WIND_TCB; 2、激活任务。taskSpawn()函数的定义,
int taskSpawn (char *name, /*任务名称必须惟一的标示*/
int priority, /*任务优先级(0-255)越小标示优先级越高*/
int options, /*任务选项*/
int stackSize, /*任务栈大小(不包含任务名称)*/
FUNCPTR entryPt, /*任务入口函数指针*/
int arg1,int arg2, int arg3,int arg4, int arg5, int arg6,int arg7, int arg8, int arg9, int arg10)
函数调用成功时,返回新任务的ID,或者返回ERROR。
参数options任务选项,可以是以下的标志组合:
VX_FP_TASK:标志浮点寄存器是否属于上下文,若函数中使用了浮点数,应带上此标