taskprioritydemo.c

来自「2410/vxworks/tornado下的基本实验包括 serial,ram」· C语言 代码 · 共 138 行

C
138
字号
/* taskPriorityDemo.c.c - 创建两个优先级不同的任务,用WindView观察任务调度
  */   #include "vxWorks.h" #include "taskLib.h" #include "semLib.h" #include "stdio.h" #include "sysLib.h"  #define  TASK_PRI_HIGH                120     /* 高优先级 */
 #define  TASK_PRI_LOW                 130    /* 低优先级 */

 #define  TASK_STACK_SIZE          5000   /* 任务栈 */
 #define LOOP_TIMES					1000000/*循环的次数*/
 
 LOCAL STATUS taskHigh ();
 LOCAL STATUS taskLowA ();
  LOCAL STATUS taskLowB ();

 /*****************************************************************************  *  taskPriorityDemo - 主函数
  *  描述  *  创建三个任务, tHighPriority 优先级较高,tLowPriorityA和tLowPriorityB优先级相同
  *  三个任务都是执行LOOP_TIMES次循环后退出
  *  *  返回值:  *  OK   *  ERROR  *  *  example
  *
  * -> sp taskPriorityDemo
  *
  */  STATUS taskPriorityDemo ()
     { 
     /* 创建 tHighPriority*/
     if (taskSpawn ("tHighPriority", TASK_PRI_HIGH, 0, TASK_STACK_SIZE, (FUNCPTR) taskHigh, 0,
                     0, 0, 0, 0, 0, 0, 0, 0, 0) == ERROR)         {         perror ("taskPriorityDemo: Error in spawning tHighPriority\n");
         return (ERROR);         } 	  else
 	  	{
         printf("taskPriorityDemo:spawning tHighPriority OK\n");
 	  		
 	  	}
     /* 创建 tLowPriorityA*/
     if (taskSpawn ("tLowPriorityA", TASK_PRI_LOW, 0, TASK_STACK_SIZE, (FUNCPTR) taskLowA, 0,
                    0, 0, 0, 0, 0, 0, 0, 0, 0) == ERROR)         {         perror ("taskPriorityDemo: Error in spawning tLowPriority\n");
         return (ERROR);         } 	  else
 	  	{
         printf("taskPriorityDemo:spawning tLowPriorityA OK\n");
 	  		
 	  	}
     /* 创建 tLowPriorityB*/
     if (taskSpawn ("tLowPriorityB", TASK_PRI_LOW, 0, TASK_STACK_SIZE, (FUNCPTR) taskLowB, 0,
                    0, 0, 0, 0, 0, 0, 0, 0, 0) == ERROR)         {         perror ("taskPriorityDemo: Error in spawning tLowPriority\n");
         return (ERROR);         } 	  else
 	  	{
         printf("taskPriorityDemo:spawning tLowPriorityB OK\n");
 	  		
 	  	}
          
     return (OK);     }  /*****************************************************************************  *  taskHigh - 高优先级任务
  *  *  返回值: OK or ERROR  *  */  LOCAL STATUS taskHigh ()
     {
     	
     	  int i;
		  for(i=0; i<LOOP_TIMES; i++)
		  	{
		  		NULL;
		  	}	

         return (OK);
     }   /*****************************************************************************  *  taskLow - 低优先级任务A
  *  *  返回值: OK or ERROR  *  */ LOCAL STATUS taskLowA()
     {     	
     	  int i;
		  for(i=0; i<LOOP_TIMES; i++)
		  	{
		  		NULL;
		  	}	
		
         return (OK);
     }  /*****************************************************************************  *  taskLow - 低优先级任务B
  *  *  返回值: OK or ERROR  *  */ LOCAL STATUS taskLowB()
     {     	
     	  int i;
		  for(i=0; i<LOOP_TIMES; i++)
		  	{
		  		NULL;
		  	}	
		
         return (OK);
     } 

⌨️ 快捷键说明

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