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

📄 multidebug.c

📁 VxWorks开发实践,包括: 《Tornado初步.doc》、《WindView简介及其用法0.doc》、《工具演示l.doc》
💻 C
字号:
/* 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 MultiTaskTestTaskA(void)  
{ 
    char cMsgToTaskB[100]; 
    char cMsgFromTaskB[100]; 

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

    printf(" Hello from MultiTaskTestTaskA \n"); 

    /*start point of debugging for  MultiTaskTestTaskA*/ 
    taskSuspend(0); 
     
    for(;;) 
    {     
        printf(" Hello from MultiTaskTestTaskA \n"); 

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

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

void MultiTaskTestTaskB(void)   
{ 
    char cMsgToTaskA[100]; 
    char cMsgFromTaskA[100]; 

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

    printf(" Hello from MultiTaskTestTaskB \n"); 

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

    for(;;) 
    { 
        printf(" Hello from MultiTaskTestTaskB \n"); 
         
        /*Send message to MultiTaskTestTaskA*/ 
        msgQSend(g_MsgQ2id,cMsgToTaskA,sizeof(cMsgToTaskA),WAIT_FOREVER,                  MSG_PRI_NORMAL);  

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


/*This function spawns MultiTaskTestTaskA and MultiTaskTestTaskB , 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 MultiTaskTestTaskA \n\n"); 
    g_lTaskATid = taskSpawn("MultiTaskTestTaskA", 100,0,10000,                                                                                          (FUNCPTR)MultiTaskTestTaskA, 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 MultiTaskTestTaskB  
\n"); 
    g_lTaskBTid = taskSpawn("MultiTaskTestTaskB", 100,0,10000,                                                                                           (FUNCPTR)MultiTaskTestTaskB, 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 + -