semb.c

来自「在TORNADO下写的基于VXWORKS的多信号量通信的源代码」· C语言 代码 · 共 46 行

C
46
字号
#include "vxWorks.h"#include "semLib.h"SEM_ID semB_id;/*	SEM_Q_FIFO (0x0)	SEM_Q_PRIORITY (0x1)	SEM_DELETE_SAFE (0x4) 	SEM_INVERSION_SAFE (0x8)	SEM_EVENTSEND_ERR_NOTIFY (0x10)*/void semBTask(SEM_ID semId){	FOREVER	{		printf("[%s] task is waiting for a BINARY semaphore... -- loop\n",taskName(0));		if(semTake(semId,WAIT_FOREVER)==ERROR)        {            printErr("semTake failed\n");        }        else		{			printf("[%s] task take a semaphore.\n",taskName(0));			printf(" I am doing something .....!!! \n\n");			taskDelay(300);		}	}}void testB(){	semB_id = semBCreate(SEM_Q_PRIORITY, SEM_EMPTY);	printf("Semphore created!\n");	printf("semB_id = 0x%8x \n",semB_id);	taskSpawn("semBTask",100,0,1000,semBTask,semB_id,2,3,4,5,6,7,8,9,0);}void giveB(){	semGive(semB_id);}

⌨️ 快捷键说明

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