📄 taskprioritydemo.c
字号:
/* 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -