⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 semm.c

📁 在TORNADO下写的基于VXWORKS的多信号量通信的源代码
💻 C
字号:
#include "vxWorks.h"#include "semLib.h"SEM_ID semM_id;/*	SEM_Q_FIFO (0x0)	SEM_Q_PRIORITY (0x1)	SEM_DELETE_SAFE (0x4) 	SEM_INVERSION_SAFE (0x8)	SEM_EVENTSEND_ERR_NOTIFY (0x10)*/void semMTask(SEM_ID semId){	FOREVER	{		printf("[%s] task is waiting for a MUTEX semaphore... -- loop\n\n",taskName(0));		if(semTake(semId,WAIT_FOREVER)==ERROR)        {            printErr("semTAKE failed\n");        }        else		{			printf("[%s] task TAKEs a semaphore. semaphore owner!!!\n",taskName(0));			printf("=====>>> I'm doing something!!!!!!!!!!!!!!!!\n");			taskDelay(300);			semGive(semM_id);			printf("=====>>> I have done!!. [%s] task GIVEs a semaphore...\n",taskName(0));		}	}}void testM(){	semM_id = semMCreate(SEM_Q_PRIORITY);	printf("Mutex Semphore created!\n");	printf("semM_id = 0x%8x \n",semM_id);	taskSpawn("semMTask1",100,0,1000,semMTask,semM_id,2,3,4,5,6,7,8,9,0);	taskSpawn("semMTask2",100,0,1000,semMTask,semM_id,2,3,4,5,6,7,8,9,0);}void giveM(){	semMGiveForce(semM_id);}

⌨️ 快捷键说明

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