Vxworks任务创建编程学习代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

任务创建编程学习代码一

此代码主要的是创建若干的任务,来学习任务的创建和删除.

程序的结构是: start函数:任务创建函数

stop函数:任务删除函数

其它为任务

请大家仔细分析代码,理解任务内务的创建和删除.本代码是在tornado2.0版本调试成功. 如有疑问联系作者jdvxworks 邮箱:foxqs@

/*********************************

* date:2006.7.10 time:16.08

* maker: jdvxworks

* aim: create 4 task

* list: task0 task1 task2 task3

* change:_____________________

*********************************/

#include "stdio.h"

#include "taskLib.h"

#include "vxWorks.h"

//#include "semBLib.h"

int taskid0;

int taskid1;

int taskid2;

int taskid3;

int loopid;

SEM_ID sem_id;

STATUS Err;

void start(void);

void test0(void);

void test1(void);

void test2(void);

void test3(void);

void stop(void);

void taskloop(void);

//start init task

void start(void)

{

int i,o;

long p=9999999+100000;

taskid0=taskSpawn("task0",200,0x100,1000,(FUNCPTR)test0,0,0,0,0,0,0,0,0, 0,0);

printf("init task0 start....\n");

for(i=0;i<50;i++)

{ printf("*");

for(o=0;o

;

}

printf("%d\n",taskid0);

printf("\n");

//create task 1

taskid1=taskSpawn("task1",200,0x100,1000,(FUNCPTR)test1,0,0,0,0,0,0,0,0, 0,0);

printf("init task1 start....\n");

for(i=0;i<50;i++)

{ printf("*");

for(o=0;o

;

}

printf("%d\n",taskid1);

printf("\n");

//create task 2

taskid2=taskSpawn("task2",200,0x100,1000,(FUNCPTR)test2,0,0,0,0,0,0,0,0, 0,0);

printf("init task2 start....\n");

for(i=0;i<50;i++)

{ printf("*");

for(o=0;o

;

}

printf("%d\n",taskid2);

printf("\n");

//create task 3

taskid3=taskSpawn("task3",200,0x100,1000,(FUNCPTR)test3,0,0,0,0,0,0,0,0, 0,0);

printf("init task3 start....\n");

for(i=0;i<50;i++)

{ printf("*");

for(o=0;o

;

}

printf("%d\n",taskid3);

printf("\n");

loopid=taskSpawn("taskloopT",201,0x100,1000,(FUNCPTR)taskloop,0,0,0,0, 0,0,0,0,0,0);

printf("init taskloopT start....\n");

for(i=0;i<50;i++)

{ printf("*");

for(o=0;o

;

}

printf("%d\n",loopid);

printf("\n");

printf("All Task Start!!!");

//create sem

sem_id=semBCreate(SEM_Q_FIFO,SEM_EMPTY);

printf("init Sem start....\n");

for(i=0;i<50;i++)

{ printf("*");

for(o=0;o

;

}

printf("\n");

printf("All Task Start!!!");

}

//start task over!!

void taskloop(void)

{

while(1)

{

taskDelay(3);

printf("taskReStart start....\n");

// semTake(sem_id,WAIT_FOREVER);

// semGive(sem_id);

//_________________________________________

if(taskRestart(taskid0)==ERROR)

{

printf(" task_0_Error Return!!!\n");

printf("ErrId:%f\n",errno);

printf("\n");

}

else

{

printf("Ok Return!!!\n");

相关文档
最新文档