⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test2task.cpp

📁 VxWorks开发实践,包括: 《Tornado初步.doc》、《WindView简介及其用法0.doc》、《工具演示l.doc》
💻 CPP
字号:
/* VxWorks includes */ 
#include        "vxWorks.h" 
#include        "taskLib.h" 
#include        "stdio.h" 
#include        "msgQLib.h" 

int g_lTaskATid; 
int g_lTaskBTid; 
MSG_Q_ID g_MsgQ1id; 
MSG_Q_ID g_MsgQ2id; 

void TaskA(void)  
{ 
    char cMsgToTaskB[100]; 
    char cMsgFromTaskB[100]; 
    char i;

    sprintf(cMsgToTaskB,"To TaskB \n"); 

    printf(" Hello from TaskA \n"); 

    /*start point of debugging for  TaskA*/ 
/*    taskSuspend(0); */
     
    for(i=0;i<5;i++) 
    {     
        printf(" Hello from TaskA * %d\n",i+1); 

        /*Send message to TaskB*/ 
             
       msgQSend(g_MsgQ1id,cMsgToTaskB,sizeof(cMsgToTaskB),WAIT_FOREVER,                                      MSG_PRI_NORMAL);  

        /*Receive message from TaskB*/ 
        msgQReceive(g_MsgQ2id,cMsgFromTaskB,100,WAIT_FOREVER); 
        printf("%s",cMsgFromTaskB); 
    } 
     
} 

void TaskB(void)   
{ 
    char cMsgToTaskA[100]; 
    char cMsgFromTaskA[100]; 
    char i;

    sprintf(cMsgToTaskA,"To TaskA \n"); 

    printf(" Hello from TaskB \n"); 

    /*start point of debugging for  TaskA*/ 
  /*  taskSuspend(0); */

    for(i=0;i<6;i++) 
    { 
        printf(" Hello from TaskB * %d\n",i+1); 
         
        /*Send message to TaskA*/ 
        msgQSend(g_MsgQ2id,cMsgToTaskA,sizeof(cMsgToTaskA),WAIT_FOREVER,                  MSG_PRI_NORMAL);  

        /*Receive message from TaskA*/ 
        msgQReceive(g_MsgQ1id,cMsgFromTaskA,100,WAIT_FOREVER); 
        printf("%s",cMsgFromTaskA); 
    } 
} 


/*This function spawns TaskA and TaskB , creates g_MsgQ1id and g_MsgQ2id ,  is entry for debugging.*/ 
void  MultiTaskTestInit(void) 
{ 
    printf(" Hello from MultiTaskTestInit \n"); 

    g_MsgQ1id=msgQCreate(20,100,MSG_Q_FIFO); 
    if(g_MsgQ1id==NULL) 
    { 
        printf(" ERROR: create g_MsgQ1 error \n"); 
    } 

    g_MsgQ2id=msgQCreate(20,100,MSG_Q_FIFO); 
    if(g_MsgQ1id==NULL) 
    { 
        printf(" ERROR: create g_MsgQ2 error \n"); 
    } 
  
     
    printf(" Spawning a new task called TaskA \n\n"); 
    g_lTaskATid = taskSpawn("TaskA", 100,0,10000,(FUNCPTR)TaskA, 0,0,0,0,0,0,0,0,0,0); 
    if(g_lTaskATid == ERROR) 
    {  
        printf(" ERROR: task did not spawn \n"); 
        exit(1); 
    } 

    printf(" Spawning a new task called TaskB  
\n"); 
    g_lTaskBTid = taskSpawn("TaskB", 100,0,10000,                                                                                           (FUNCPTR)TaskB, 0,0,0,0,0,0,0,0,0,0);                                                              
   if(g_lTaskBTid == ERROR) 
    {  
        printf(" ERROR: task did not spawn \n"); 
        exit(1); 
    } 
  
  exit(0); 
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -