?? sema4new.c
字號:
#include "vxWorks.h"
#include "stdio.h"
#include "stdlib.h"
#include "taskLib.h"
#include "semLib.h"
int tidStart;
int tidEnd;
int g;
void helloStart();
void helloEnd();
STATUS helloStop();
STATUS tHelloStart();
SEM_ID semHello;
STATUS tHelloStart()
{
/* Spawn start Task */
semHello=semMCreate( SEM_Q_PRIORITY);
if(semHello==NULL)
{
printf("Something is wrong when create semaphore\n");
return ERROR;
}
tidStart = taskSpawn(NULL, 80, 0, 2000, (FUNCPTR)helloStart,
0,0,0,0,0,0,0,0,0,0);
if(tidStart==NULL)
{
printf("Something is wrong when create taskStart\n");
return ERROR;
}
/* Spawn end Task */
tidEnd = taskSpawn(NULL, 80, 0, 2000, (FUNCPTR)helloEnd,
0,0,0,0,0,0,0,0,0,0);
if(tidEnd==NULL)
{
printf("Something is wrong when create taskEnd\n");
return ERROR;
}
return (OK);
}
void helloStart()
{
for(;;)
{
semTake(semHello, WAIT_FOREVER);
g = 1;
taskDelay (sysClkRateGet ( ) / 3);
printf("task A: g = %d\n", g);
semGive(semHello);
taskDelay (sysClkRateGet ( ) / 3);
}
}
void helloEnd()
{
for(;;)
{
semTake(semHello, WAIT_FOREVER);
g = 2;
taskDelay (sysClkRateGet ( ) / 2);
printf("task B: g = %d\n", g);
semGive(semHello);
taskDelay (sysClkRateGet ( ) / 2);
}
}
STATUS helloStop()
{
/* delete tasks */
taskDelete(tidStart);
taskDelete (tidEnd);
return(OK);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -