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

📄 goodprog.c

📁 Vxworks的培训教程,大家分享下啊,
💻 C
字号:
/* goodProg.c - fixes badProg.c */

#include "vxWorks.h"
#include "semLib.h"
#include "stdio.h"
#include "taskLib.h"
#include "sysLib.h"

void foo(char flag);
LOCAL SEM_ID semId;

STATUS startFoo (char *pPrintStr)
	{
	char flag;

	flag = *pPrintStr;

	if (semId == NULL)
		{
		
		if ((semId = semMCreate (SEM_Q_PRIORITY |
							SEM_DELETE_SAFE |
							SEM_INVERSION_SAFE)) == NULL)
			{
			perror ("semMCreate failed");
			return ERROR;
			}
		}

	if (taskSpawn ("tFoo", 200, 0, 5000, 
						(FUNCPTR) foo, flag,
						0,0,0,0,0,0,0,0,0) == ERROR)
		{
		perror ("taskSpawn failed");
		return (ERROR);
		}
	
	taskDelay (sysClkRateGet () * 5);

	return (OK);
	}


void foo (char flag)
	{
	FOREVER
		{
		if (semTake (semId, WAIT_FOREVER) == ERROR)
			{
			perror ("semTake failed");
			return;
			}

		if (flag == 'y')
			printf ("Critical nonsense...\n");

		semGive (semId);

		taskDelay (sysClkRateGet() * 3);
		}
	}

⌨️ 快捷键说明

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