s5_rrsched.c

来自「tornado2.2开发」· C语言 代码 · 共 102 行

C
102
字号
#include "vxWorks.h"
#include "taskLib.h"
#include "kernelLib.h"
#include "sysLib.h"
#include "logLib.h"
#include "stdio.h"

#define ITER1 100
#define ITER2 10
#define PRIORITY 101
#define TIMESLICE (sysClkRateGet()/60)
#define LONG_TIME (1<<25)

static void taskOne(void)
{
    int i,j;
    for (i=0;i<ITER1;i++)
    {
        for (j=0;j<ITER2;j++)
        {
            logMsg("\n",taskIdSelf(),0,0,0,0,0);
        }
        for (j=0;j<LONG_TIME;j++)
        {}
    }
}

static void taskTwo(void)
{
    int i,j;
    for (i=0;i<ITER1;i++)
    {
        for (j=0;j<ITER2;j++)
        {
            logMsg("\n",taskIdSelf(),0,0,0,0,0);
        }
        for (j=0;j<LONG_TIME;j++)
        {}
    }
}

static void taskThree(void)
{
    int i,j;
    for (i=0;i<ITER1;i++)
    {
        for (j=0;j<ITER2;j++)
        {
            logMsg("\n",taskIdSelf(),0,0,0,0,0);
        }
        for (j=0;j<LONG_TIME;j++)
        {}
    }
}

static void taskFour(void)
{
    int i,j;
    for (i=0;i<ITER1;i++)
    {
        for (j=0;j<ITER2;j++)
        {
            logMsg("\n",taskIdSelf(),0,0,0,0,0);
        }
        for (j=0;j<LONG_TIME;j++)
        {}
    }
}

void s5_rrsched(void)
{
    int taskIdOne,taskIdTwo,taskIdThree,taskIdFour;
    if (kernelTimeSlice(TIMESLICE)==OK)
    { 
        logMsg("\n\n\n\n\t\t\tTIMESLICE = %d ticks\n\n\n",
               TIMESLICE,0,0,0,0,0);
    }
    taskDelay(sysClkRateGet()*2);

    if ((taskIdOne = taskSpawn("t1",PRIORITY,0x100,20000,
          (FUNCPTR)taskOne,0,0,0,0,0,0,0,0,0,0))==ERROR)
    { 
        logMsg("taskSpawn taskOne failed.\n",0,0,0,0,0,0);
    }
    if ((taskIdTwo= taskSpawn("t2",PRIORITY,0x100,20000,
          (FUNCPTR)taskTwo,0,0,0,0,0,0,0,0,0,0))==ERROR)
    { 
        logMsg("taskSpawn taskOne failed.\n",0,0,0,0,0,0);
    }
    if ((taskIdThree = taskSpawn("t3",PRIORITY,0x100,20000,
          (FUNCPTR)taskThree,0,0,0,0,0,0,0,0,0,0))==ERROR)
    { 
        logMsg("taskSpawn taskThree failed.\n",0,0,0,0,0,0);
    }
    if ((taskIdFour = taskSpawn("t4",80,0x100,20000,
          (FUNCPTR)taskFour,0,0,0,0,0,0,0,0,0,0))==ERROR)
    { 
        logMsg("taskSpawn taskFour failed.\n",0,0,0,0,0,0);
    }

}

⌨️ 快捷键说明

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